java - Weka - 文件过早结束,第 1 行
问题描述
我知道这个问题听起来像是重复的,但事实并非如此。Weka 中有关此错误的其他问题都无法解决我的问题,它们与 arff 文件有关。我正在使用文本文件。 在 Eclipse 中成功使用 Weka 后,我想将它用于 Android 应用程序。因此,我正在设备的内部存储器中创建和存储一个文件,并且可以从中读取。这就是我创建文件的方式:
String filename = "mydata";
String relation = "@relation mydata";
String attributes = "\n@attribute cheek numeric\n\n" +
"@attribute eye numeric\n" +
"@attribute mouth numeric\n" +
"@attribute nose numeric\n" +
"@attribute name {0, 1, 2}";
String data = "\n\n@data\n" +
"58.319244, 35.185467, 28.329004, 19.908704, 0\n" +
"64.63182, 36.4422 , 30.721794, 20.632916, 1" + "\n" +
"65.45019, 36.28883, 27.934803, 26.095049, 2";
FileOutputStream outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
outputStream.write((relation + attributes + data).getBytes());
outputStream.close();
当我从文件中读取时,它是这样的:
@relation mydata
@attribute cheek numeric
...
@data
58.319244, 35.185467, 28.329004, 19.908704, 0
...
我得到的错误是:
java.io.IOException:文件过早结束,读取 Token[EOF] 第 1 行
错误发生在最后一行:
FileInputStream fis = getApplication().openFileInput("practice");
InputStreamReader isr = new InputStreamReader(fis); BufferedReader bufferedReader = new BufferedReader(isr); 实例组合 = new Instances(bufferedReader);
我花了很多时间搜索这个错误,但还没有找到解决方案。再一次,我没有将它保存为 arff 文件,我认为它被保存为文本文件。我也相信错误与获取BufferedReader
并将其传递给Instances
构造函数有关。
有人能帮我解决这个问题吗?我在 Eclipse 中使用了一个具有类似结构的文本文件,但现在在 Android 中,它给了我这个错误。
更新:
我找到了解决问题的方法并将其发布在下面。问题在于将文件读入BufferedReader
.
解决方案
通过遵循不同的方法BufferedReader
从File
. 以下代码BufferedReader
使用内部存储中文件中的数据成功创建了一个,然后可以在Instances
构造函数中使用。
String yourFilePath = getApplicationContext().getFilesDir() + "/" + "practice";
File yourFile = new File(yourFilePath);
BufferedReader bufferedReader = new BufferedReader(new FileReader(yourFile));
最初,我一直在尝试以下方法:
FileInputStream fis = getApplication().openFileInput("practice");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader bufferedReader = new BufferedReader(isr);
上面的代码导致了异常:
java.io.IOException:文件过早结束,读取 Token[EOF] 第 1 行
推荐阅读
- c - 如何检查文件中是否没有内容,以及如何避免从文件中读取最后一个字符?
- swift - SwiftUI:当分段选取器具有新位置时,视图不会刷新正文
- php - GET请求后关注HTML选择下拉选项
- python - 在python中加载.dat文件
- google-cloud-platform - Google API 0Auth2 无法检索访问令牌
- reactjs - 如何在 React 和 Axios 中管理和发送 httpOnly 存储的 jwt cookie
- performance - 用于测量 CLS 的体验选项卡在 Devtools 中不可见
- python-3.x - 如何在第一列下方的数据框中添加所有列
- swiftui - .sheet 修饰符更改 ListView 上的背景颜色
- python - 无法为“instapy”安装 clarifai