入力Streams.readは、()は、どのようにそれが正確に動作しますか?

ファビアンAndiel:

私は、次のコードを持っています:

public static void main(String[] args) throws Exception {

 FileInputStream inputStream = new FileInputStream("c:/data.txt");

 FileOutputStream outputStream = new FileOutputStream("c:/result.txt");

 while (inputStream.available() > 0) {
  int data = inputStream.read(); 
  outputStream.write(data); 
 }

 inputStream.close(); 
 outputStream.close();
}

私は、次の行のまわりで私の頭を取得いけません。 int data = inputStream.read();

そして、可変データ内に自動的に連結しますバイトによって/data.txt、読み取りバイト、およびまたはん:ファイルcのバイトを取得しinputStream.read()たファイルを読み込みc:/data.txt、すべてを一度に、データ変数に割り当てるすべてのもの?

Vishwaラトナ:

以下からのJavaDoc

A FileInputStream取得入力は、ファイルシステム内のファイルからのバイト。FileInputStream以下のために意味される画像データなどの生のバイトのストリームを読み込みます読書のために、文字のストリームを、使用することを検討してくださいFileReader

質問:ファイルのバイト数を取得c:/data.txtバイトによるリードバイトを、その後、とは、可変データ内に自動的に連結されたりないinputStream.read()ファイルを読み込むc:/data.txt すべてを一度に、データ変数に割り当てるすべてのもの?

回答するには、このテイク例をすることができます:

try {
  FileInputStream fin = new FileInputStream("c:/data.txt");
  int i = fin.read();
  System.out.print((char) i);
  fin.close();
} catch (Exception e) {
  System.out.println(e);
}

上記のプログラムを実行する前にdata.txtファイルがテキストで作成されました:Welcome to Stackoverflow

上記のプログラムの実行後にコンソールがあるファイルから単一の文字印刷87明確ことを示し、(バイト形式での)FileInputStream#read入力ストリームからデータのバイトを読み取るために使用されます。


だから、FileInputStreamデータを読み込むbyteことでbyte

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=451730&siteId=1