-1

私はこの酸味を持っています:

public static void inBufferBooks() throws IOException
{
    Reader inStreamBooks = null;
    BufferedReader bufferIn = null;

    try
    {
        inStreamBooks = new FileReader("Files/BufferBook.txt");
        bufferIn = new BufferedReader(inStreamBooks);

        char text[] = new char[10];

        int i = -1;

        while ((i = inStreamBooks.read(text, 0, 10)) != -1)
        {
            System.out.print(text);
        }

テキストコンソールの最後にファイルを読み取ると、最後の配列を埋める文字が表示されます。最後の配列から冗長な文字なしでファイルからテキスト全体を読み取るにはどうすればよいですか?

4

3 に答える 3

0

最後の配列から冗長な文字なしでファイルからテキスト全体を読み取るにはどうすればよいですか?

返された値を使用readして、配列内でまだ有効な文字数を判断します。ドキュメントから:

戻り値:

読み取った文字数、またはストリームの終わりに達した場合は -1

于 2017-01-06T15:33:51.040 に答える
0

読んだ文字数を覚えて、その数だけ印刷する必要があります。

for (int len; ((len = inStreamBooks.read(text, 0, text.length)) != -1; ) {
    System.out.print(new String(text, 0, len));
}
于 2017-01-06T15:34:43.117 に答える
0

この問題を解決するために、whileサイクルを次のように変更します。

while((i = bufferText.read(text, 0, text.length)) != -1){
            if(text.length == i){
                System.out.print(text);
            }else if (text.length != i){
                    System.out.print(Arrays.copyOfRange(text, 0, i));
            }

助けてくれてありがとう。

于 2017-01-19T09:06:42.013 に答える