에 네 앞에 추가된다 : 파일 UTF-16으로 출력한다는, I는 다음의 방법을 이용하여 텍스트 파일에 바이트 배열을 출력있어 전면
try{
FileOutputStream fos = new FileOutputStream(filePath+".8102");
fos.write(concatenatedIVCipherMAC);
fos.close();
}catch(Exception e)
{
e.printStackTrace();
}
인코딩 된 데이터, 예 : OE) GU3의«'DÃ {+ I-A] IO
: 이¢의 ¬6î) ªÈP ~ m~LïiƟê • æ»가/# Ó ö¹ ¥는 '& ¼lG을 þ²XhÃ
그러나 ?
네 ¢ ¬6î) ªÈP ~ m~LïiƟê • æ»/ # Ó ö¹ ¥ 'þ²Xhà & ¼lG : 나는 데이터의 앞 앞에 추가
þÿ
, 예를 얻을에 나는 다시 읽고 있어요 때 : OE) GU3«'DÃ {+ I-A] IO이 내가 파일에 읽기 위해 사용하고하는 방법입니다 :
private String getFilesContents() { String fileContents = ""; Scanner sc = null; try { sc = new Scanner(file, "UTF-16"); System.out.println("Can read file: "+file.canRead()); } catch (FileNotFoundException e) { e.printStackTrace(); } while(sc.hasNextLine()){ fileContents += sc.nextLine(); } sc.close(); return fileContents; }
다음
byte[] contentsOfFile = fileContents.getBytes("UTF-16");
가로 문자열을 변환 바이트 배열.구글이 "바이트 순서를 나타내지 만 Java가 거기에 있거나 Windows를 넣었습니까? 어떻게 내가 읽는 데이터의 시작 부분에?가 붙는 것을 피할 수 있습니까? 처음 2 바이트 만 무시하려고 생각했지만 Windows라면 분명히 다른 플랫폼에서 프로그램을 중단합니다.
편집 : 변경 사항이 앞에 붙습니다.
음, 실제로는 * 텍스트 *와 같이 보이지 않습니다. * 의미하는 파일 내용은 무엇입니까? 바이너리 파일이 아니라고 확신합니까? –
@JonSkeet AES-CBC를 사용하여 일부 데이터를 암호화했습니다. 파일은 IV + 데이터 + MAC입니다. 그것은 읽을 수있는 텍스트를 의미하지 않습니다? 나는 뭔가 다르게 행동해야 하는가? – Peanut
스캐너를 사용하여 파일을 읽는 이유는 무엇입니까? 스캐너는 텍스트 파일 용입니다.귀하의 파일은 바이너리 파일입니다. –