Ai đó có thể giải thích cho tôi tại sao điều này wont work xây dựng:java đọc/ghi xây dựng
while (fileInputStream.available()>0) {
fileOutputStream.write(fileInputStream.read());
}
và điều này làm việc tốt:
while (fileInputStream.available()>0) {
int data = fileInputStream.read();
fileOutputStream.write(data);
}
Đối với tôi rằng họ là giống hệt nhau, nhưng 1st một sẽ không ghi dữ liệu chính xác (sẽ viết một nửa chiều dài tập tin/dữ liệu).
Có vòng lặp nào mà bạn không hiển thị cho chúng tôi không? Bởi vì read() chỉ đọc một phân đoạn dữ liệu. Nói chung rằng phân đoạn được xác định bởi một container một int là 32 bit, nơi như fileoutputstream có số tiền khác nhau của byte –
Chúng giống nhau. Lưu ý rằng điều này không ** không ** sao chép toàn bộ nội dung của luồng đầu vào vào luồng đầu ra. Nó sẽ đọc và viết chỉ một byte. – Jesper
nếu bạn muốn làm cho nó hoạt động, bạn nên nhập một bộ đệm byte http://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html#read (byte []) –