0

私はJavaを学ぼうとしています。入力ストリームを読み書きしようとする小さなコードがあります。ただ、一行だけ意味がわからないところがあります。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyBytes {
    public static void main(String[] args) throws IOException {

        FileInputStream in = null;
        FileOutputStream out = null;

        try {
            in = new FileInputStream("xanadu.txt");
            out = new FileOutputStream("outagain.txt");
            int c;

            while ((c = in.read()) != -1) {
                out.write(c);
            }
        } finally {
            if (in != null) {
                in.close();
            }
            if (out != null) {
                out.close();
            }
        }
    }
}

この部分の意味は何ですか:?

while ((c = in.read()) != -1) {
            out.write(c);

変数Cは実際に何をしますか?

プログラムは実際にどのように機能しますか?

変数Cは入力ストリーム ファイルから読み取られ、読み取られた後、読み取られている部分は消去され、入力ストリーム ファイルから削除されますか?

このコードが一般的に行ごとに行うことを説明して、誰か助けてくれませんか?

4

4 に答える 4

0

JavaDocによると:

戻り値:

データの次のバイト、またはファイルの終わりに達した場合は-1。

これを意味する:

while ((c = in.read()) != -1) {
            out.write(c);

入力ストリームがファイルの終わりを検出しないまで、つまりファイルにまだ文字が残っているまで、読み続けることを意味します。データの次のバイトを読み取ったら、それを出力ストリームに書き込みます。

于 2012-11-30T06:05:54.443 に答える
0

- FileInputStreamおよびは、ファイルの読み取りと書き込みをそれぞれ...FileOutputStreamの形式で行う必要がある場合に使用されます。bytes

while ((c = in.read()) != -1) {
            out.write(c);
 }

-あなたがしているのは、ファイル内のデータをバイト形式で読み取り、それをファイルに書き込むということですxanadu.txt outagain.txt

-そして、-1はEOF(ファイルの終わり)を示すため、がin.read()返されるまで続きます。-1

于 2012-11-30T06:07:21.803 に答える
0

この部分の意味は何ですか:?

while ((c = in.read()) != -1) {
        out.write(c);

xanadu.txtファイルからバイト単位で読み取り、バイト単位で出力outagain.txtします。

変数 C は実際に何をしますか?

Java では大文字と小文字が区別されるためcC. 入力ファイルから読み取ったバイトの値を持ちます。

于 2012-11-30T06:08:40.680 に答える
0
while ((c = in.read()) != -1) {
        out.write(c);}

上記のコードでは、JavaDocsに従って、メソッドはファイルの最後に到達するとin.read() -1 を返します。つまり、read メソッドが -1 を返さなくなるまでループにとどまる必要があるということです。

プログラムは実際にどのように機能しますか?

この部分に来ると、基本的に、ファイルをrawbytesとして読み取り、上記のwhileループFileInputStreamを使用してファイルとして再度FileOutputStream書き込み、ファイル全体を最後まで書き込むと判断します

変数 C は入力ストリーム ファイルから読み取られ、読み取られた後、読み取られている部分は消去され、入力ストリーム ファイルから削除されますか?

メソッドread()は入力ストリームからデータのバイトを読み取り、それを返すため、読み取りと同時にデータを書き込む必要があります。はい、読み取られた前のバイトは新しいバイトを読み取るときに削除されます

FileInputStreamは、画像データなどの生バイトのストリームを読み取るためのものです。文字のストリームを読み取るには、FileReaderの使用を検討してください

于 2012-11-30T06:08:45.827 に答える