java - 如何在按钮操作中用 int 替换 string?

标签 java string for-loop filereader

我在按钮操作中有以下代码:

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时,""没有任何文本。为什么?

最佳答案

这段代码

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
}

如果仍然没有改变任何内容,您可以在循环期间添加调试输出。分配str之后。

关于java - 如何在按钮操作中用 int 替换 string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45870579/

相关文章:

java - 我如何重用 ScriptContext(或以其他方式提高性能)?

java - 国际象棋棋盘的 ASCII 表示

php - 查找并替换YouTube网址

Python:For 循环列表给出 IndexError

javascript - 我的脚本中的循环迭代不正确

java - 在 NetBeans 中编译任何 JavaFX 项目都会返回 Unsupported major.minor version 52.0

java - RandomAccess 在现代 Java 中有什么值(value)吗?

c++ - 将二进制字符串转换为整数字符串 C++

java - 获取一个 String 并从 String 在 Java 中表示的类中创建一个对象

python - 为什么不对我的所有列表运行此循环?