내 질문 : 입력 스트림이 시스템 표준 행 분리 기호로 처리하려면 어떻게해야합니까?시스템 개행과 다른 개행 문자
문자열로 파일을 읽고 줄 바꿈이 \n
으로 변환되었지만 내 System.getProperty("line.separator");
은 \r\n
이됩니다. 이 파일을 portable으로하고 싶습니다. 따라서 파일 판독기에서 줄 바꿈 문자를 시스템 표준 줄 바꿈 문자로 읽을 수 있습니다. 강제로 어떻게 할 수 있습니까? 여기에 파일을 문자열로 읽는 Java Helper 라이브러리의 내 메소드가 있습니다.
/**
* Takes the file and returns it in a string. Uses UTF-8 encoding
*
* @param fileLocation
* @return the file in String form
* @throws IOException when trying to read from the file
*/
public static String fileToString(String fileLocation) throws IOException {
InputStreamReader streamReader = new InputStreamReader(new FileInputStream(fileLocation), "UTF-8");
return readerToString(streamReader);
}
/**
* Returns all the lines in the Reader's stream as a String
*
* @param reader
* @return
* @throws IOException when trying to read from the file
*/
public static String readerToString(Reader reader) throws IOException {
StringWriter stringWriter = new StringWriter();
char[] buffer = new char[1024];
int length;
while ((length = reader.read(buffer)) > 0) {
stringWriter.write(buffer, 0, length);
}
reader.close();
stringWriter.close();
return stringWriter.toString();
}
나는이 대답/설명을 좋아한다. 감사. 빠른 질문. 이것을 구현하려고하는데 UTF-8 인코딩을 사용하고 싶습니다. 나는 단지 내가 가지고있는 것을'BufferedReader'에서 랩핑해야할까요, 아니면 더 좋은 방법이 있을까요? 내 구현은 다음과 같을 것이다 :'BufferedReader reader = new BufferedReader (new InputStreamReader (new FileInputStream (fileLocation), "UTF-8"));' – kentcdodds
@kentcdodds : 그것을 더 간단하게 만드십시오. (특히, Charsets.UTF_8을 지정하여 코드에서 문자열 리터럴을 제거 할 수 있습니다 ...) –
Jon에게 도움을 주셔서 감사합니다. ** 미래 독자를위한 참고 사항 ** 이것이 자체 개발 프로젝트가 아니라면 구아바 도서관의 제안과 함께 갈 것입니다. – kentcdodds