Java, 로컬 파일 읽기 및 쓰기 문제 해결
선언:
자바 프로그램으로 중국어를 포함하는 txt 파일을 읽거나 쓸 때 자주 읽거나 쓰는 내용이 혼란스러워집니다.원인은 사실 매우 간단하다. 바로 시스템의 인코딩과 프로그램의 인코딩이 서로 다른 인코딩 형식을 채택했기 때문이다.일반적으로 자신이 수정하지 않으면 윈도우즈 자체가 사용하는 인코딩 형식은 gbk(gbk와 gb2312는 기본적으로 같은 인코딩 방식)이고, IDE에서 Encode가 수정하지 않으면 기본값은utf-8의 인코딩입니다. 이것이 바로 인코딩이 발생하는 이유입니다.OS에서 수동으로 만들고 쓴 txt 파일 (gbk) 을 프로그램으로 직접 읽으면 (utf-8) 코드가 혼란스러워집니다.가능한 중국어 디코딩 문제를 피하기 위해서는 파일을 쓰고 읽을 때 인코딩 형식을 명시적으로 지정하는 것이 좋습니다.
행별로 로컬 파일 읽기:
public static String readFile(String fileName) {
String fileContent = "";
try {
File f = new File(fileName);
if (f.isFile() && f.exists()) {
InputStreamReader read = new InputStreamReader(
new FileInputStream(f), "gbk");
BufferedReader reader = new BufferedReader(read);
String line;
while ((line = reader.readLine()) != null) {
fileContent += line+"
";
}
read.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return fileContent;
}
로컬 파일 쓰기:
public static void writeFile(String fileName, String fileContent) {
try {
File f = new File(fileName);
if (!f.exists()) {
f.createNewFile();
}
OutputStreamWriter write = new OutputStreamWriter(
new FileOutputStream(f), "gbk");
BufferedWriter writer = new BufferedWriter(write);
writer.write(fileContent);
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.