3

プログラムが機能しない理由がわかりません。コンパイルされますが、何も出力されません。ファイルに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
4

2 に答える 2

3

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(); 
...
于 2012-09-07T20:00:06.823 に答える
0

プログラムは最後の行のみを出力します

ループで印刷する必要があります。

while (....!=null)
{
 array = currentLine.toCharArray();

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


}

上記が問題ではなかった場合は、ファイルのアクセス許可を確認してください。

ファイルの許可により、プログラムがファイルから読み取ることができない可能性があることをシステムで確認してください。

于 2012-09-07T20:06:39.033 に答える