2014-01-14 2 views
0

일부 검색 결과 나는 여기에서 문제를 제기하는 것이 최선이라고 믿는다.Java FileOutputStream, 파일에 double double write

이중 값을 읽는 프로그램을 쓰려고하면 .txt 파일 (문제 없음)을 작성하고 이진 파일에 기록한 다음 이진 파일에서 다시 읽습니다. 내가 믿는이 문제에 대한 FileInputStream에/FileOutputStream에를 사용하여

임은

(그러나 임 몹시 녹색 이것 만이 두 가지로 지시) 그러나 이러한 방법은 읽기/쓰기 할 수있는 잘못된 방법입니다 int-values, 또는보다 정확한 int의 처음 8 비트가 첨부되거나 리턴됩니다.

저는 double 값이 64 비트라는 것을 알고 있습니다. 그래서 즉시 문제에 반대합니다. 만약 내가 잘못된 수업을 사용한다면 나는 그들을 행복하게 바꿀 것이다.

건배!

+0

아마도 [this] (http://stackoverflow.com/questions/9128116/java-serialize-double) 도움이 될 수 있습니다. – gtgaxiola

+0

FileIn/OutputStream을 직접 사용하는 데는 문제가 없지만 많은 일반 유형을 읽고 쓸 수 있으므로 DataIn/OutputStream에서 래핑하는 것이 더 쉽습니다. – kaqqao

답변

0

ObjectOutputStream의 FileOutputStream과 ObjectInputStream의 FileInputStream을 래핑해야합니다.이 클래스에는 Java 프리미티브 쓰기/읽기 메소드가 있습니다.

1

비록 불가능하지는 않지만이 작업을 위해 상대적으로 원시 스트림을 사용하는 것이 가장 쉬운 방법은 아닙니다. RandomAccessFile에는 writeDouble/readDouble 메서드가 있습니다. 예를 들어, 파일에 원시 값을 덤핑하고 다시 읽는 것과 같이 내가 원하는 것을 정확하게 수행한다고 생각합니다.