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 }\nRun 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\nWord: 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\nRun Code Online (Sandbox Code Playgroud)\n
它完全按照文档执行
写入单个字符。
参数:
c- int 指定要写入的字符
我怀疑你想要:
out.write(String.valueOf(values[i]));
Run Code Online (Sandbox Code Playgroud)
这会覆盖Writer.write(int),记录稍微更清楚:
写入单个字符。要写入的字符包含在给定整数值的低 16 位中;16 个高位被忽略。