我正在尝试将文本文件转换为ARFF(属性关系文件格式(文件。以下是所需的文件结构。
@relation data1
@attribute f1 numeric
@attribute f2 numeric
@attribute f3 numeric
@attribute f4 numeric
@attribute f5 numeric
@attribute f6 numeric
@attribute class {1,2}
@DATA
-0.32,-0.63,-0.46,-0.49,-0.23,-0.16,1
-0.51,-0.45,-0.16,-0.3,-0.22,0.43,2
....
到目前为止,我使用了以下代码,但它并没有给我arff文件的确切结构
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String toWrite = "";
String line = null;
while ((line = reader.readLine()) != null) {
toWrite += line;
// System.out.println(toWrite);
}
FileWriter fw = new FileWriter("aa1.arff",true);
fw.write(toWrite);
fw.close();
感谢所有
i强烈猜测您缺少换行符。。。
bufferedReader为您读取的每一行创建一个String
,但换行符本身会丢失。
BufferedReader reader=new BufferedReader(new FileReader("file.txt"((;
因此,当您再次将内容写回文件时,您应该使用BufferedWriter
并逐行写入。或者,就像你一样,写"整体",但你必须手动添加lineBreak。
while ((line = reader.readLine()) != null) {
//toWrite += line; //line break is no more in the destination
toWrite = toWrite + line + "n"; //but here you go...
}
注意-使用这个答案没有考虑任何编码问题!