2017-04-02 3 views
0

현재 할당을하고 있는데 파일에 쓸 바이트 배열이 있습니다. 바이트 배열을 파일에서 다시 가져올 수 있기를 원하지만, 내가 올바른 값을 돌려 주었다고 생각하지 않습니다. 바이트 배열을 문자열로 변환하여 바이트 배열로 다시 변환

텍스트 파일

PrintWriter fw = new PrintWriter(new BufferedWriter(new FileWriter("tc.txt",true))); 
KeyPair keyPair = generateKeyPair(); 
byte[] publicKey = keyPair.getPublic().getEncoded(); 
byte[] privateKey = keyPair.getPrivate().getEncoded(); 
fw.println(email +" " + publicKey + " " + privateKey); //adds the site into the text file whcih contains all the blacklisted sites 
fw.flush(); 

에 쓸 수있는 코드입니다 그리고 난 다시 문자열로 정보를 얻을이

같은 바이트 배열로 다시 변환) (.getBytes를 사용하려고
tempPublicKey = (blScanner.next()).getBytes(); 

맞지 않는 것 같습니다. 그 사이에 어떤 일이 잘못 됐습니까? 이 텍스트 파일을 읽을 때

+0

당신은 어떤 인풋과 아웃풋을 가지고 있습니까? – nhouser9

+1

각 바이트 배열 (바이트 배열의 내용을 포함하지 않음)의 toString() 표현을 파일에 씁니다. 바이트를 파일에 쓰는 올바른 방법이 아닙니다. 그리고 바이트 배열 내용을 읽고 되돌릴 수있는 방법이 없습니다. –

답변

0

당신이 텍스트 파일임의 바이트 시퀀스를 작성하는 것처럼, 쓰기 및 디코딩에 encoding your bytes to base64 format을 고려하십시오. 일부 바이트에 당신의 바이트 순서를 보존합니다 base64에 바이트 인코딩 등의 서식 문자 등으로

을 인정하고 다시 디코딩 할 수 있기 때문에

텍스트 파일을 저장하고 임의의 바이트 시퀀스를 검색 할 수 적합하지 않습니다 쓰기 및 텍스트 파일과의 읽기.