使用 BufferedReader 读取多个文件(使用 String[] args)

Reading multiple files using BufferedReader(with String[] args)

我想使用主要方法数组从两个或多个文件中读取文本。可能吗? (我的代码可能有点奇怪,因为我是初学者)

这是我的代码。

public static void main(String[] args) throws IOException {
    if(args.length != 1)
    {
        System.out.println("wrong number of arguments");
        System.exit(1);
    }
     args[0] = "data.txt"; 
     args[1] = "data2.txt"; 

    BufferedReader file = new BufferedReader(new FileReader(args[0],args[1]));
    int NumberofRows =0, NumberofCharacter =0;
    while(true)
    {
        String row = file.readLine();
        if(row == null)
            break;
        NumberofRows++;
        NumberofCharacter = NumberofCharacter + row.length();

    }
    System.out.println("The files "+" data.txt " + " and " "data2.txt "+ "contains "+ NumberofRows+ "rows and  NumberofCharacter  contains"+
    NumberofCharacter  +" character");

    file.close();

您可以创建一个具有相同大小的 args 的 BufferedReader 数组。然后你可以用循环构造它们。

public static void main(String[] args)throws IOException {
    if (args.length != 1) {
        System.out.println("wrong number of arguments");
        System.exit(1);
    }
    args[0] = "data.txt";
    args[1] = "data2.txt";

    for (int i = 0; i < args.length; i++) {

        BufferedReader file = new BufferedReader(new FileReader(args[i]));
        int NumberofRows = 0, NumberofCharacter = 0;
        while (true) {
            String row = file.readLine();
            if (row == null)
                break;
            NumberofRows++;
            NumberofCharacter = NumberofCharacter + row.length();

        }

        file.close();
    }
}
String row = ""; 
while(row = file.readLine()) !=null)
    {
        System.out.println(row);
        NumberofRows++;
       NumberofCharacter += row.length();
   }

你可能想在读取文件时考虑这种方法,不要强制程序从文件中读取行。这有时可能会引发异常。

@Lena:我不明白你为什么要在 main 方法中影响 args[] 的值?

args[0] = "data.txt";
args[1] = "data2.txt";

相反,您可以在执行 main 时在 args[] 中传递文件名,并测试 args[].length < 1,因为 args[].length != 1 将始终为真,如果您想要读取两个或更多文件。正如@ugurdonmez 所说:您可以创建一个具有相同大小的 args 的 BufferedReader 数组。

    public static void main(String[] args)throws IOException {
                if(args.length <1)
                {
                    System.out.println("wrong number of arguments");
                    System.exit(1);
                }
                for(int i=0; i<args.length; i++)
                {
                   BufferedReader file = new BufferedReader(new FileReader(args[i]));
                   int NumberofRows =0, NumberofCharacter =0;
                   while(row = file.readLine()) !=null)
                   {
                      String row = file.readLine();
                      NumberofRows++;
                      NumberofCharacter = NumberofCharacter + row.length();
                    }
                }
                System.out.println("The files "+" data.txt " + " and " "data2.txt "+ "contains "+ NumberofRows+ "rows and  NumberofCharacter  contains"+
        NumberofCharacter +" character");
               file.close();
            }
    }

我找到了 eclipse 的快捷方式。

1) 点击 运行 -> 运行 配置 2)点击参数选项卡 3) 在 Program Arguments 部分,输入您的参数。 4)点击应用