BufferedWriter.write() 方法不会将整数写入文件

syf*_*tid 1 java file

public void saveToTextFile(String outText) throws IOException\n   {\n\n       BufferedWriter out = new BufferedWriter(new FileWriter(outText));\n       String[] keys=new String[words.size()];\n       int[] values=new int[words.size()];\n       int i=0;\n\n       for(String word : words.keySet())\n       {\n          keys[i]=word;\n          values[i]=words.get(word);\n          i++;\n          if(i==words.size()) //\xce\x88\xcf\x87\xce\xbf\xcf\x85\xce\xbc\xce\xb5 \xce\xb4\xce\xb9\xce\xb1\xcf\x83\xcf\x87\xce\xaf\xcf\x83\xce\xb5\xce\xb9 \xcf\x8c\xce\xbb\xce\xbf \xcf\x84\xce\xbf HashMap\n          {\n              break;\n          }\n       }\n\n       bubbleSort(values,keys);\n\n       for(i=0;i<words.size();i++)\n       {\n           out.write(keys[i]);\n           out.write(",");\n           out.write(values[i]);\n           out.write("\\n");\n       }\n\n       out.close();\n   }\n
Run Code Online (Sandbox Code Playgroud)\n\n

我有上述函数,当我打开文件时,它会创建如下内容:\nhello,you,are,fine,how,thanks,too,world,以及前两个逗号后面的一些奇怪的符号。就像 out.write(values[i]); 和 out.write("\\n"); 不工作!我检查了 bubbleSort* 之后的数组,它们很好!问题似乎出在写入文件......

\n\n

这就是我得到的,这是正确的:

\n\n
Word: hello Frequency: 2\nWord: you Frequency: 2\nWord: are Frequency: 1\nWord: fine Frequency: 1\nWord: how Frequency: 1\nWord: thanks Frequency: 1\nWord: too Frequency: 1\nWord: world Frequency: 1\n
Run Code Online (Sandbox Code Playgroud)\n

Jon*_*eet 5

它完全按照文档执行

写入单个字符。

参数:
c - int 指定要写入的字符

我怀疑你想要:

out.write(String.valueOf(values[i]));
Run Code Online (Sandbox Code Playgroud)

这会覆盖Writer.write(int)记录稍微更清楚

写入单个字符。要写入的字符包含在给定整数值的低 16 位中;16 个高位被忽略。