我正在尝试将文本文件用作临时数据库。问题是,当我将它写入文本文件时,它会按顺序写入。然后它以表格的形式显示在表格中。有人能看出为什么会这样吗?
这是我写入文件的方法。
public void writeDtLogsCsv() throws IOException {
Writer writer = null;
try {
File file = new File("C:\\savedLogs.txt");
writer = new BufferedWriter(new FileWriter(file));
for (AddLogs log : logView) {
String text = log.getDate() + ";" + log.getName() + ";" + log.getDowntime() + ";" +
log.getEquipment() + ";" + log.getProblem() + ";" + log.getFix() + "\r\n";
writer.write(text);
}
writer.flush();
writer.close();
} catch (IOException ex) {
}
}
这是我从文件中读取的方法。
public void readCSV() {
String CsvFile = "C:\\savedLogs.txt";
String FieldDelimiter = ",";
BufferedReader br;
try {
br = new BufferedReader(new FileReader(CsvFile));
String line;
while ((line = br.readLine()) != null) {
String[] fields = line.split(FieldDelimiter, -1);
AddLogs record = new AddLogs();
logView.add(record);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(AddLogs.class.getName())
.log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(AddLogs.class.getName())
.log(Level.SEVERE, null, ex);
}
}
答案 0 :(得分:0)
在再次查看writeDtLogsCsv()
之后,我注意到了这一点。
您没有将,
写入文件作为分隔符。相反,您正在撰写;
。
每个操作系统的换行符都不同。 \r\n
是Windows的标准,而\n
是MacOS和Linux的标准
我会更改以下内容:
for (AddLogs log : logView) {
String text = log.getDate() + "," + log.getName() + "," + log.getDowntime() + "," +
log.getEquipment() + "," + log.getProblem() + "," + log.getFix();
writer.write(text);
writer.newLine(); // Insert a new line character
}
writer.newLine();
写一个行分隔符。行分隔符字符串由系统属性line.separator定义,不一定是单个换行符('\ n')。