我正在使用txt文件,其中包含如下所示的文本: 超人是所有法律高等的大师[testim]
我正在尝试阅读此文本,并将其打印在另一个文档中,但是当我打印时,它会打印出类似这样的内容 超人是所有合法高手的大师 [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后也是如此。
如果你可以帮我弄清楚如何用这个特殊字符读取文件,然后在一行上打印文本行,那就太棒了!
编辑: 这是我打印的方式: for(int b = 11; b< num - 6; b ++){ outputStream.print(split [b] +“”); } outputStream.print(split [num - 6] +“\ t”);
答案 0 :(得分:1)
尝试使用下面的其他编码......
inputStream = new BufferedReader(new InputStreamReader(fis, "ISO-8859-1"));
您可以使用此构造函数设置输出的编码。
outputStream = new PrintWriter("partSplit.txt","ISO-8859-1");