1
EOF에 도달하면 파일에 데이터를 추가하여 파일을 다시 읽으려고합니다. 그러나 데이터를 추가 한 후 두 번째로 읽은 것은 작동하지 않습니다.임의 액세스를 사용하여 파일 다시 읽기
이 무엇 내가 뭘하면 처음에 내가 처음 읽기 동안, 내 bytesread = 302 또는 뭔가를 파일의 내용을 말 읽고 있어요 내 코드
File f = new File("sample.csv");
byte[] bb= new byte[(int)f.length()];
RandomAccessFile raf = new RandomAccessFile (f, "r");
int bytesread=0;
bytesread = raf.read(bb, 0,(int)f.length());
//bytesread =302 or something
raf.seek(f.length());
Thread.sleep(4000);
bytesread = raf.read(bb,0,2);
//bytesread = -1 instead of 2
raf.close();
입니다. 이제 EOF에 대한 포인터를 찾고 파일에 데이터를 추가하고 다시 읽지 만 원하는 결과 bytesread = 2 대신 bytesread를 -1로 가져옵니다. 아무도 내 프로그램과 함께 prob 무엇인지 말해 줄래? 이 파일의 끝을 읽을 일단
파인 피터, 데이터를 추가하면 EOF 이후 파일을 읽을 수있는 다른 방법은 없지만 요점은 있습니까? –
RandomAccessFile을 사용하면 의미가 있지만 그게 무엇인지는 알 수 없습니다. Javadocs에서 파일 끝을 "재설정"할 수있는 방법이 있는지 확인합니다. 아마도 seek()를 호출하면됩니다. ?? –
EOF를 재설정 할 수있는 방법이 없는지 확인했습니다. 예 seek()은 파일 포인터 오프셋 만 설정합니다. –