我不明白为什么我的程序无法运行。它可以编译,但是什么也不会打印。我的档案中有5个字元的字词。我需要从该文件中读取一行,然后将其拆分为char数组,然后再将其打印出来。谢谢!

import java.io.FileReader;
import java.io.IOException;
import java.io.BufferedReader;

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

        BufferedReader line = null;
        char[] array = new char[7];

        try{

            line = new BufferedReader(new FileReader(args[0]));

            String currentLine;
            while((currentLine = line.readLine()) != null)
            {
                array = currentLine.toCharArray();
            }

            for(int i = 0; i < array.length; i++)
            {
                System.out.print(array[i]);
            }

        }//try

        catch(IOException exception)
        {
            System.err.println(exception);
        }//catch

        finally
        {
            try
            {
                if(line != null)
                    line.close();
            }//try

            catch(IOException exception)
            {
                System.err.println("error!" + exception);
            }//catch

        }//finally
    } // main
} // test

最佳答案

您的while循环会跳过除最后一行以外的每一行,因此最后一行可能为空。要显示每一行,您可以:

while ((currentLine = line.readLine()) != null) {
    array = currentLine.toCharArray();
    for (int i = 0; i < array.length; i++) {
        System.out.print(array[i]);
    }
    System.out.println();
}

或者,如果只有1行,则可以简单地使用:
String currentLine = line.readLine();
...

关于java - 阅读行并拆分为char数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12324528/

10-11 16:34