我正在使用一个txt文件,其中有如下文本: 超人是所有合法高级的主人 - [testim]Java - 无法读取¬Ö(特殊字符)并将其打印
我想读这样的文字,并打印出来在另一份文件,但是当我打印,其打印像这样 超人是所有合法兴奋剂 [testim]
我想要的特级大师将确切的东西打印到文档中,你能帮助我吗? 这里是我的代码:
BufferedReader inputStream = null;
PrintWriter outputStream = null;
FileInputStream fis = new FileInputStream(new File("completeTextFile"));
inputStream = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
outputStream = new PrintWriter(new FileWriter("partSplit.txt"));
String line;
while ((line = inputStream.readLine()) != null) {
String[] split = line.split("\\s+");
int num = split.length;
后,我通过分割空间的文件,然后,我希望把上面的词放在一起,但后来只打印没有特殊字符在两行文字。我试图通过StackOverflow查看,并尝试使用UTF-8,但它仍然无法正常工作。我试图使用UTF-16,然后Java堆空间问题不断发生,即使在我设置了-Xms512M -Xmx2048M之后。
如果您可以帮助我弄清楚如何读取具有此特殊字符的文件,然后在一行中打印文本行,那就太棒了!
编辑: 下面是如何我打印: 对(INT B = 11,B < NUM - 6,B ++){ outputStream.print(分裂并[b] +““); outputStream.print(split [num - 6] +“\ t”);
(1)您没有显示的代码,其中你实际上写出来了。 (2)你的初始文件是用UTF-8还是其他的东西编码的? (3)'inputStream'和'outputStream'是不是'InputStream'和'OutputStream'的变量名称。 – 2014-11-06 21:39:09
'BufferedReader.readLine()'将删除尾随换行符。您可能想要寻找替代方法或追加自己的换行符。 – 2014-11-06 21:41:14
我实际上不知道我的文件是否使用UTF-8格式。我一定会改变变量名称!谢谢你的提示。 – 2014-11-06 21:51:20