2017-12-03 1 views
1

내 Java 프로그램의 경우 파일에 쓸 바이트 배열 목록을 얻습니다. 전에 시도한 것은이진수를 파일에 써서 어떻게 증명할 수 있습니까?

FileWriter fw = new FileWriter("file.out"); 
BufferedWriter bw = new BufferedWriter(fw); 

bw.write(new String(data)); 
bw.flush(); 

이고 목록의 바이트 []가됩니다. 문자열로 변환하기 때문에 이진의 정확성을 잃어 버렸다고 가정합니다.

그래서 지금 FileOutputStream으로 시도하고 있습니다.

File myFile = new File("file.out"); 
FileOutputStream fos = new FileOutputStream(myFile); 
BufferedOutputStream bos = new BufferedOutputStream(fos); 

bos.write(data); 
bos.flush(); 

또한 데이터는 목록에서 바이트 []입니다.

제 질문은 작성한 파일이 실제로 이진 올바른지 어떻게 확인할 수 있습니까? 파일의 각 행을 byte []로 읽고이를 입력과 비교한다면 completly 동일할까요?

+1

단위 테스트를 고려해 보셨습니까? –

+1

예, 이진 파일에만 줄이없고 바이트 배열로 전체 파일을 읽고 비교해야합니다. – Oleg

+1

리눅스 사용자라면 xxd 명령을 사용하여 이진 파일의 데이터를 볼 수 있습니다 – Alireza

답변

0

는 파일에 배열을 작성하려면 :

List<byte[]> list = new ArrayList<byte[]>(); 
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(filePath)); 
out.writeObject(list); 

다시 같은 파일에서 배열을 읽어 :

ObjectInputStream in = new ObjectInputStream(new FileInputStream(filePath)); 
List<byte[]> byteList = (List<byte[]>) in.readObject(); 

주 -이, 스트림의 예외 처리 등을 배치에 포함되지 않습니다

관련 문제