달성 할 내용 : ObjectOutputstream
의 writeObject()
메서드를 사용하여 Integer 개체를 파일에 저장할 때 이전 Integer 개체를 덮어 쓰고 새 개체로 대체하려고합니다. 그러나 새로운 Integer 객체를 넣을 때마다 스트림을 닫고 다시 열지 않으려합니다. 난 그냥 새로운 가치로 그것을 업데이 트하고 싶습니다.ObjectOutputstream 닫는 스트림을 사용하지 않고 이전 개체 덮어 쓰기
내가 생각해 낸 해결책은 나에게 효과가 없었습니다. 여기에 코드입니다 : 내가 이것을 읽을 때
ObjectOutputStream stream1 = new ObjectOutputStream(new FileOutputStream(new File("ClientBase"), false));
stream1.writeObject(new Integer(2));
stream1.flush();
stream1.reset();
stream1.writeObject(new Integer(9));
stream1.close();
, 내가 가진 두 개의 정수 대신 내가 이런 식으로 넣어 경우 값 2
로 정수로 대체 값 9 정수의 객체, 그것을 작동합니다.
ObjectOutputStream stream1 = new ObjectOutputStream(new FileOutputStream(new File("ClientBase"), false));
stream1.writeObject(new Integer(2));
stream1.close();
stream1 = new ObjectOutputStream(new FileOutputStream(newFile("ClientBase"), false));
stream1.writeObject(new Integer(9));
stream1.close();
내 질문 : 내가 잘못된 방법으로 reset()
방법을 사용하고 폐쇄/개방 스트림없이 덮어 쓰기를 달성하기 위해 다른 방법이 있습니까?
그것은 스트림이 아닌 랜덤 액세스 것입니다. 스트림에 두 개의 객체를 쓰면 두 개의 객체를 스트림에서 읽습니다. 귀하의 질문에 이해가되지 않습니다. – EJP
유일한 방법은 스트림을 닫고 다시 여는 것입니다. –
스트림뿐 아니라 * 파일 * 게시하기 전에 Javadoc과상의하는 것이 좋습니다. 어떤 식 으로든 당신의 가정을 뒷받침하는 것은 없습니다. – EJP