2017-08-24 30 views
1

我在按鈕的動作驗證碼:如何在按鈕操作中用int替換字符串?

String text = jTextField18.getText(); 
int x = Integer.parseInt(text); 

String text = jTextField18.getText(); 
int x = Integer.parseInt(text); 
try { 
    FileReader fr1 = new FileReader("Name.txt"); 
    BufferedReader br1 = new BufferedReader(fr1); 
    String str = null; 
    for (int i = 1; i <= x; i++) { 
     str = br1.readLine(); 
    } 
    br1.close(); 

    jTextField13.setText(str); 

但是,當我按下按鈕jTextField13""沒有任何文字。爲什麼?

+4

將'str = br1.readLine();'改爲'str + = br1.readLine()+「」;' –

+0

nope它仍然不起作用 – ezscript

+1

確定,那麼您將要創建併發布您的[mcve],一個可編譯和運行的小程序,我們可以測試和修改,所以我們可以真正看到什麼不工作,爲什麼。這將爲您快速獲得正確答案提供最佳機會。 –

回答

0

此代碼

FileReader fr1 = new FileReader("Name.txt"); 
BufferedReader br1 = new BufferedReader(fr1); 
String str = null; 
for (int i = 1; i <= x; i++) { 
    str = br1.readLine(); 
} 
br1.close(); 

打開文本文件,一行行讀它,但只保留最後一行。 如果此行爲空,則str也將爲空。

相反,你可以

  • 要麼做

    String str = ""; 
    for (int i = 1; i <= x; i++) { 
        str += br1.readLine() + "\n"; 
    } 
    br1.close(); 
    
  • 或僅僅依靠流(關於Java 8):

    String str = br1.lines().collect(Collectors.joining("\n")); 
    br1.close(); 
    

注:除此之外,你可以使用try-with-resources:

try (
    FileReader fr1 = new FileReader("Name.txt"); 
    BufferedReader br1 = new BufferedReader(fr1)) { 
    // stuff above 
} 

如果仍然沒有改變任何東西,您可以在循環resp期間添加調試輸出。在str後分配。