java 如何在BufferReader中同时使用string和int?

46qrfjad  于 2022-12-21  发布在  Java
关注(0)|答案(2)|浏览(104)

我想知道BufferedReader是否可以同时使用字符串和整数,我的代码有什么问题?

import java.io.*;

public class Main {
    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5};
        try {
            var writer = new BufferedWriter(new FileWriter("test.txt"));
            writer.write("hello");
            writer.write("\n welcome");
            for (int num : nums) {
                writer.write(num + "\n");
            }
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        
        try {
            BufferedReader reader = new BufferedReader(new FileReader("test.txt"));
            String line = reader.readLine();
            int num = Integer.parseInt(reader.readLine());
            while (line != null) {
                System.out.println(line);
                line = reader.readLine();
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

我想只使用BufferedReader读取在上述方法中写入的int和string

mgdq6dx1

mgdq6dx11#

如果给定的字符串是一个数字,您可以尝试在前面进行检查,例如:

private static boolean isNumeric(String str) {
    return str != null && str.matches("[0-9.]+");
}

然后,如果isNumeric(line)为真,则将其赋值为整数。

bvjxkvbb

bvjxkvbb2#

首先,您缺少几个分号(;),分别位于要创建nums数组的行和要写入字符串“\n welcome”的行。
其次,当写入文件时,前两行是字符串值,因此当您尝试在第二行使用parseInt时,它会抛出NumberFormatException

相关问题