【发布时间】:2015-02-08 18:35:45
【问题描述】:
我有以下代码
//Put the collection frequencies into a file
Iterator iter = docFreq.entrySet().iterator();
while(iter.hasNext())
{
Map.Entry tf = (Map.Entry)iter.next();
pw.write((String)tf.getKey());
pw.write("\t");
pw.write((int)tf.getValue());
pw.write("\t");
float fractionofDocs = (int)tf.getValue()/(float)size;
pw.println(fractionofDocs);
}
pw.close();
我看到写入文件的第二个值出现乱码输出,即pw.write((int)tf.getValue());
输出是这样的
and õ 0.9607843
of ë 0.92156863
the ê 0.91764706
on Þ 0.87058824
information Ö 0.8392157
如果最后一个字段被省略,即从 while 中删除这些行之后,我可以看到第二个字段打印为 int 值
pw.write("\t");
float fractionofDocs = (int)tf.getValue()/(float)size;
pw.println(fractionofDocs);
谁能告诉我哪里错了?
【问题讨论】:
-
pw.println("" + fractionofDocs);或pw.println(String.valueOf(fractionofDocs));与您打印的所有其他号码相同。 -
@HovercraftFullOfEels 谢谢。它奏效了。
标签: java io printwriter