【发布时间】:2018-02-18 06:00:48
【问题描述】:
我正在尝试显示来自单独文件的列数据和来自另一个文件的行数据,但它的输出不正常,下面的行文件是用于输出的图像文件和两个文本文件:
private void orbuttonActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model = (DefaultTableModel) orderitemtable.getModel();
model.setRowCount(0);
String filename = "ORDERITEMFILE.txt";
String idnamefile = "odcofile.txt";
File file1 = new File(idnamefile);
File file = new File(filename);
try {
BufferedReader br = new BufferedReader(new FileReader(file1));
BufferedReader br1 = new BufferedReader(new FileReader(file));
//to make the columns name so to get the first line of code
//set columnsname to the jtable Model
String firstLine = br.readLine().trim();
String[] columnsName = firstLine.split("/");
model.setColumnIdentifiers(columnsName);
//get lines from txt files
Object[] tablelines = br1.lines().toArray();
//Extracting the data from lines
//set data to jtable Model
for (int i = 0; i < tablelines.length; i++) {
String line = tablelines[i].toString().trim();
String[] dataRow = line.split(",");
model.addRow(dataRow);
}
} catch (Exception ex) {
Logger.getLogger(productpage.class.getName()).log(Level.SEVERE, null, ex);
}
}
问题是它显示该列的直到产品类型,然后它更改为新行并在那里显示其余内容:
这是the text file,它从 txt 文件中正确读取的行,唯一的问题是当它显示在 JTable 中时,它读取的最后两个数量在单独的行中。
【问题讨论】:
-
如需尽快获得更好的帮助,请发帖 minimal reproducible example 或 Short, Self Contained, Correct Example。将一些数据硬编码为 MCVE / SSCCE 中的
String对象。更一般地: 1) 另见How to create great screenshots? 2) 不要包含文本内容的图像,将文本包含为文本。 3) 使用合乎逻辑且一致的缩进代码行和块的形式。缩进是为了让代码的流程更容易理解! -
根据我的小实验,似乎没有任何特别的问题。这表明问题出在输入文件本身
-
@MadProgrammer 但我检查了很多次的文件确实由
-
根据我的简单测试,用于读取文件的代码似乎是正确的,我推测输入在行中间某处包含“返回”字符,这导致了 BufferedReader过早地分裂它。记事本不会显示这个,它需要一个“换行符”和“返回”才能拆分行