Ta dando java.io.EOFException que pelo que pesquisei é quando passa da quantidade de bytes do arquivo, eu ainda não entendi bem, pois to estudando agr sobre isso
Aqui ta o código:
public final class Testes{
static FileOutputStream arquivoOut;
static FileInputStream arquivoIn;
static DataOutputStream gravar;
static DataInputStream ler;
public static void main(String[] args) throws IOException {
lerDados();
lerProximoDado();
}
public static void gravarDados(String dado) throws FileNotFoundException, IOException {
arquivoOut = new FileOutputStream("C:\\Users\\berna\\Desktop\\Nova pasta\\dados.dat");
gravar = new DataOutputStream(arquivoOut);
gravar.writeUTF(dado);
arquivoOut.close();
}
public static void lerDados() throws FileNotFoundException, IOException {
arquivoIn = new FileInputStream("C:\\Users\\berna\\Desktop\\Nova pasta\\dados.dat");
ler = new DataInputStream(arquivoIn);
System.out.println(ler.readUTF());
arquivoIn.close();
}
public static void lerProximoDado() throws FileNotFoundException, IOException {
arquivoIn = new FileInputStream("C:\\Users\\berna\\Desktop\\Nova pasta\\dados.dat");
ler = new DataInputStream(arquivoIn);
System.out.println(ler.read());
while(ler.read() != -1) {
System.out.println(ler.readUTF());
}
}
}
O arquivo já existe, eu havia criado antes, então comecei a fazer alguns testes pra entender melhor sobre o assunto.
O erro ta dando na seguinte linha dentro do while :
System.out.println(ler.readUTF());