Java打印作家环绕
我正在使用Java PrintWriter将Scala HashMap写入文件。这是我使用的代码:Java打印作家环绕
def writeToFileAsMapUsingPrintWriter(data: mutable.HashMap[String, Int], outputFilename: String, outputDirectoryPath: String): Unit = { val myfile = new File (outputDirectoryPath, outputFilename);
val printWriter = new PrintWriter(myfile);
for ((k, v) <- data) {
printWriter.println(s"$k->$v")
}
printWriter.close();}
现在的问题是这周围的PrintWriter包装一些线路输出文件的下一个换行符。 如:
CC PRP VBP JJ1 to get JJ2 IN ->821065 2000 DT RBS JJ1 IN the hundred of JJ2 year->10521306 PRP be JJ1 TO VB JJ2 IN ->10521307 DT world POS JJ1 marketer , MD lead JJ2 effort->10521308
这将成为,因为当我读到这个文件后面一个问题,我去逐行,和我遇到行没有ID,如上面。而有趣的部分是它只发生在同一条线上。有比这更长的线条,但他们不环绕。
我试图独立运转的PrintWriter只是与这些5条线在HashMap,那么它打印在同一行即这些线不缠绕。它只有当我喂我的11GB哈希映射,这发生。我也尝试用print替换println,但没有什么区别。
printWriter.print(s"$k->$v\n")
我也许可以进去与SED命令修复文件中这些行,但只能解决这些2,不会修复等。另外它只是一个临时修复。
听起来像某种内存问题给我。有没有人遇到过这个?
同时,我会尝试更多的试错法。所以接下来我将用BufferedWriter替换PrintWriter,使用flush()命令,如here等
只需要花费12小时来运行我的程序一次,所以转身时间是巨大的。因此,以防万一有人遇到过这种情况。
回答:
你有多确定你的密钥实际上不包含换行符?有时候很难发现。我的猜测是,这可能解决这个问题:
printWriter.println(s"${k.trim()}->$v")
我很怀疑有任何种类的内存问题或其他错误与JVM或Java标准库。
以上是 Java打印作家环绕 的全部内容, 来源链接: utcz.com/qa/259298.html