Я пытался прочитать из одного файла и записать байты, прочитанные в другой файл, используя классы, указанные в заголовке. Я успешно сделал это, но пока я пытался попробуйте разные вещи, я столкнулся с проблемой, которую я не понимаю.
Вот кодЧтение из одного файла с использованием FileInputStream и запись в другой файл с использованием FileOutputStream
import java.io.*;
public class FileInputStreamDemo {
public static void main(String[] args)
throws Exception {
// TODO Auto-generated method stub
int size;
InputStream f = new
FileInputStream("G:/Eclipse Workspace/FileInputStream Demo/src/FileInputStreamDemo.java");
System.out.println("Total available bytes: " + (size = f.available()));
/*int n=size/40;
System.out.println("first " + n + " bytes of file one read() at a time");
for (int i=0;i<n;i++)
{
System.out.print((char) f.read());
}
System.out.println("\n Still available: " + f.available());
System.out.println("reading the next" + n + "with one read(b[])");
byte b[] = new byte[n]; */
/*for(int i=0;i<size;i++)
{
System.out.print((char) f.read());
}*/
OutputStream f1 = new
FileOutputStream("G:/Eclipse Workspace/FileInputStream Demo/test.txt");
for (int count = 0; count < size; count++) {
f1.write(f.read());
}
for (int i = 0; i < size; i++) {
System.out.print(f.read());
}
f.close();
f1.close();
}
}
Проблема, что я говорю о том, что когда я впервые прочитал от FileInputStream
объекта f
т.е. f.read()
и записать его на объект f1
т.е. FileOutputStream
он продолжает делать то, что он , но когда я пытаюсь прочитать его снова, он возвращает -1. почему так ?
нибудь, пожалуйста предложить правку .Я не может редактировать его правильно здесь на SO – user3085866
-1 означает конец файла. Его конец файла, почему вы снова читаете его из файла FileInputStream во втором цикле. – Braj
так что я должен делать, если я хочу прочитать его с самого начала? – user3085866