2017-08-24 74 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后分配。