簡體   English   中英

缺少行嗎? 從.txt文件讀取字符串並將其放入數組(java)

[英]Missing line? Reading string from .txt file and putting into arrays (java)

抱歉,我還是Java的新手,基本上我的最終結果是要求輸入“ pin碼”,並且該pincode將在文本文檔中,但是我不確定如何將它們設置為下面的數組? 我的數組的輸出保持為null而不是文檔中的文本。 漁獲物也是出來的。

文本文檔與Java類放在同一個文件夾中,我應該使用完整路徑嗎?

文本中只有兩個項目,例如,我希望每個項目分別位於listArray [0]和listArray [1]中

如果文檔中的字面意思是:

1111,john doe,5000 / n * enter * 2222,glen johnson,4000

我需要在左邊的引腳號為array [0],名稱為array [1]

這是事后的想法,沒有考慮擁有多個帳戶

到目前為止,這是我嘗試過的:

public class Confirmation extends ATMrunner {
    public static void pinConfirm() {
        String[] listArray = new String[2];
        try {
            BufferedReader br = new BufferedReader(new FileReader("C:\Users\workspace\TellerMachine\src\bankATM\userlist.txt"));
            String line = "";
            while ((line = br.readLine()) != null) {
                for (int i = 0; i <= 1; i++) {
                    listArray[i] = line;
                }
            }
            br.close();
        } catch (IOException ioe) {
            System.out.println("File may be corrupted; please contact admin");
        }
        System.out.println(listArray[0]);
        System.out.println(listArray[1]);
    }
}

感謝一些幫助!

好的,首先要做的是:

全路徑給我一個無效的轉義序列錯誤。

這是因為在Java中,實際上有許多編程語言。 聲明字符串時,可以使用一些特殊字符; 例如“換行”字符\\n ,這是一個告訴正在讀取String數據的字符,該位置應該有換行。 您可以在Wikipedia文章中了解有關這些“轉義序列”的更多信息。

聲明絕對路徑時,其中包含多個\\字符,這些字符用來表示這些特殊字符。 因此,對於\\Users ,可以看到您正在嘗試輸入值\\U的“特殊字符”,而該字符沒有。 為了解決這個問題; 只需將所有\\字符替換為\\\\

其次,在您的while(和for)循環中讀取文件時; while循環的每次執行都會得到文件的新行。

(line = br.readLine()) != null

然后,然后遍歷String數組“ listArray”,並將每個元素設置為當前行。

for (int i = 0; i <= 1; i++) {
       listArray[i] = line;
}

這里將出現的問題是,您將要讀取文件的第一行,然后將數組的兩個元素設置為該行。 然后,您將讀取文件的另一行; 並將所有元素設置為該行。 接着...

要更改此設置,我建議使用如下技術:

int index = 0;
String line = "";
while((line = br.readLine()) != null) {
    listArray[index] = line;
    index++;
}

現在,這個while循環將執行與您相同的操作,但是使用此循環; 您還將跟蹤數組的當前索引。 while循環的每個循環將讀取一行並為其分配當前索引,然后它將遞增索引。 這種方法的問題在於,如果文件包含多於2行,則while循環將第三次運行,並嘗試在數組上分配越界索引。 要更改此設置,您還可以嘗試在嘗試分配索引之前檢查索引是否在數組范圍內,如下所示:

while((line = br.readLine()) != null && index < listArray.length)

當然,有更好的方法可以完成所有這些操作,但是所有這些可以使您的應用程序正常運行。

暫無
暫無

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

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