簡體   English   中英

如何讀取文件並將文本拆分為變量?

[英]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 taskNoneLow ,第2行拆分為Task2 2, JanuaryHigh

謝謝。

更改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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM