【问题标题】:Assign numbers from a txt file to a String variable in java?将txt文件中的数字分配给java中的String变量?
【发布时间】:2017-11-07 18:15:33
【问题描述】:

好的,所以我无法弄清楚如何将 txt 文件中的数字分配给 String 变量。我的实现几乎可以满足我的要求,但它并不完全正确。使用我的代码,它会在 txt 文件中占用一行,并在每次循环重新启动时重新分配它。这意味着在它输出时,唯一显示的是文件的最后一行。我希望它包含整个 txt 文件。

P.S.)我实际上不需要打印变量,我只是为了验证它是否包含我需要的一切。我正在做一个更大的项目,如果我能做到这一点,我应该能够相应地调整我的实际项目。另外,如果给出的任何解决方案/帮助没有试图让我使用数组,我将不胜感激。如果我必须将变量转换为数组,那么我将不得不重新编码其他所有内容以适应它。

public class test {
    public static String num;
    public static void main(String[] args) {

        BufferedReader reader = null;

        try {
            File file = new File("test3_14.txt");
            reader = new BufferedReader(new FileReader(file));

            String line;
            while ((line = reader.readLine()) != null) {
                //System.out.println(line);

                num = line;
                //System.out.println(num);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        System.out.print(num);
    }
}

【问题讨论】:

标签: java eclipse file bufferedreader


【解决方案1】:

我假设您想将所有数字连接成一个字符串

创建一个 StringBuilder 对象

StringBuilder stringBuilder = new StringBuilder();

给它添加行:

stringBuilder.append(line);
stringBuilder.append(","); // if you want to separate the numbers

循环结束后,构建字符串并将其保存在您的变量中

num = stringBuilder.toString();

【讨论】:

    【解决方案2】:

    您是否尝试将num = line; 更改为num += line;

    【讨论】:

    【解决方案3】:

    从您的代码中可以看出,您没有将新行附加到文本中。您每次都在覆盖它。您可以遵循以下任何一种方法 -

    • 不要使用 (=),而是使用 (+=)。更好的方法是使用 Stringbuilder 并稍后转换为字符串。

    • 您可以使用 FileUtils.readFileToString(File, Charset)。此方法将文件的内容读取到字符串。

    • 如果您使用的是 Java 8,则可以使用 Files.lines() 方法获取 Stream。

    【讨论】:

      【解决方案4】:

      从您的代码中可以看出,您没有将该行附加到文本中。您每次都在覆盖它。您可以遵循以下任何一种方法 -

      • 不要使用 (=),而是使用 (+=)。更好的方法是使用 Stringbuilder 并稍后将其转换为字符串。

      • 您可以使用 FileUtils.readFileToString(File, Charset)。此方法允许您将整个文件作为字符串读取。

      • 如果您使用的是 Java 8,您还可以使用 Files.lines() 来获取 Stream。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多