Я попытался прочитать из текстового файла, используя DataInputStream
и FileInputStream
. Я знаю, что я должен использовать FileReader, но я хотел попробовать его с потоками Byte.Почему я получаю исключение EOF только тогда, когда читаю из созданного мной файла?
здесь код
import java.io.*;
public class FTest_3 {
public static void main(String[] args) throws IOException{
DataInputStream stream = new DataInputStream(new FileInputStream("lol1.txt"));
String str = stream.readUTF();
System.out.println(str);
stream.close();
}
}
Если я пытаюсь читать из файла lol1.txt, получая EOF Exception
и readUTf(unknownsource)
ошибки.
Но если я создам файл lol1.txt используя DataOutputStream
, а затем прочитайте его, используя приведенный выше код, он отлично работает.
Вот мой код, чтобы записать файл
import java.io.*;
public class FTest_4 {
public static void main(String[] args) throws IOException{
DataOutputStream stream = new DataOutputStream(new FileOutputStream("lol1.txt"));
stream.writeUTF("hahah");
stream.close();
}
}
Кроме того, я не мог найти любую соответствующую запись, которая может ответить на мой запрос. Спасибо!
так как вы создаете файл изначально? –
DataOutputStream использует определенный формат файла. Вы не можете создать файл другим способом и ожидать, что сможете его прочитать. В частности, вы не можете читать с ним текстовые файлы. – Thilo
«Я хотел попробовать его с потоками байтов». Ну, тогда сделай это. DataInputStream не является байтовым потоком. Для необработанных байтов напрямую используйте FileInputStream. – Thilo