[英]How can I read a file and split the text into variables?
我正在嘗試從JTable的文本文件中讀寫數據。 我能夠將數據寫入文本文件,但是在讀取數據並將其加載回JTable時遇到困難。
寫入文件方法
此方法將創建文本文件,並將JTable的各個行另存為文件。
public void saveData() {
try{
PrintWriter writer = new PrintWriter("data.txt", "UTF-8");
for (int row = 0; row < table.getRowCount(); row++) {
for (int col = 0; col < table.getColumnCount(); col++) {
writer.print(table.getValueAt(row, col));
writer.print(":");
}
writer.println();
}
writer.close();
} catch (IOException e) {
}
}
從文件讀取方法
public void loadData() {
File file = new File("data.txt");
Scanner scanner;
try {
scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] details = line.split(":");
String name = details[0];
String dueDate = details[1];
String priority = details[3];
model.addTask(name, dueDate, priority);
model.fireTableDataChanged();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
我希望此方法讀取每一行並將行拆分為3個變量,以便可以將其添加回我的JTable中。
例如,文件中的數據保存如下:
A task:None:Low
Task2:2, January:High
因此,這會將第1行拆分為A task
, None
和Low
,第2行拆分為Task2
2, January
和High
謝謝。
更改String priority = details[3];
設置為String priority = details[2];
。
在Java中,索引從0
開始,因此要訪問最后一個元素Low
(在第三個索引處),則必須使用2
。
String priority = details[3];
這是2,而不是3,因為您要獲取第三個元素,並且它們從0開始編號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.