2017-08-24 7 views
1

私はボタンアクションでこのコードがあります。ボタンアクションでstringを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

まだ動作しません。 – ezscript

+1

OK、作成して投稿します。 [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 (
    FileReader fr1 = new FileReader("Name.txt"); 
    BufferedReader br1 = new BufferedReader(fr1)) { 
    // stuff above 
} 

それでも変更がない場合は、ループresp中にデバッグ出力を追加することができます。 strの割り当て後。

関連する問題