您好我在这个简单的转换任务中遇到了一些问题。 这是我的代码(粗略但不那么复杂):
FileInputStream fis = new FileInputStream ("file");
BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"CP1250"));
try {
StringBuilder sb = new StringBuilder();
String line = null;
try {
line = reader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while (line != null) {
sb.append(line);
if(line.contains(" "))
sb.append(System.lineSeparator());
try {
line = reader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
String everything = sb.toString();
System.out.println(everything);
PrintWriter writer = null;
try {
writer = new PrintWriter("clean", "UTF-8");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
writer.println(everything);
writer.close();
}
finally {
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
但是我使用相同的编码格式获得与输入相同的输出。 你看到无论如何能够提供帮助吗?
答案 0 :(得分:0)
文档说 1)public void println(String x) 打印一个字符串,然后终止该行。此方法的行为就像调用print(String)然后调用println()一样。
并且2) public void print(String s) 打印一个字符串。如果参数为null,则打印字符串“null”。否则,字符串的字符将根据平台的默认字符编码转换为字节,并且这些字节的写入方式与write(int)方法完全相同。
您可能会使用
完成转换PrintWriter writer
= new PrintWriter(new OutputStreamWriter(new FileOutputStream("clean", true),
"UTF-8"));