簡體   English   中英

使用BufferedReader讀取Java中的單行

[英]Using BufferedReader to read a single line in Java

我已成功從CSV中讀取代碼。 但是,當我嘗試使用fileReader讀取獨奏行時,它會使我的代碼停止工作。

這是我的代碼:

try {
    String line = "";
    fileReader = new BufferedReader(new FileReader(filename));

    while ((line = fileReader.readLine()) != null) {
        String[] tokens = line.split(DELIMITER);
        for (String token : tokens) {
            totalData.add(token);
            if (!artists.contains(token)) {
                artists.add(token);
            }
        }
        for (int l = 0; l <= 999; l++) {
            lineData = fileReader.readLine();
            lineArray[l] = lineData;
        }

    }
} finally {
    fileReader.close();
}

當我嘗試讀取arrayList大小和打印數據時,我從上面這個代碼上面的arrayList獲得它使它停止工作:

for (int l = 0; l <= 80; l++) {
    lineData = fileReader.readLine();
    lineArray[l] = lineData;
}

如果我評論這個循環,一切都很好。 我真的需要這個for循環,如何編輯我的代碼來解決這個問題? 還有,發生了什么?

for (int l = 0; l <= 80; l++) {
    lineData = fileReader.readLine();
    lineArray[l] = lineData;
}

這個硬代碼可以代替一行代碼:

lineArray[i++] = line;

我糾正了你的代碼,這就是發生的事情:

String line = "";
int i = 0;
try (BufferedReader fileReader = new BufferedReader(new FileReader(""))) {
    while ((line = fileReader.readLine()) != null) {
        lineArray[i++] = line;
        String[] tokens = line.split(DELIMITER);
        for (String token : tokens) {
            totalData.add(token);
            if (!artists.contains(token)) {
                artists.add(token);
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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