[英]Writing to a text file and reading it into a table is giving weird results (Java)
我正在嘗試使用文本文件作為臨時數據庫。 問題是,當我將其寫入文本文件時,它會無序寫入。 然后以這種方式將其顯示在表格中。 誰能看到為什么會這樣?
這是我寫入文件的方法。
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);
}
}
在再次查看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();
的文檔 writer.newLine();
寫一個行分隔符。 行分隔符字符串由系統屬性line.separator定義,不一定是單個換行符('\\ n')。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.