0

我正在尝试将 ArrayList 的内容保存到 txt 文件,但是当我这样做时,我得到了很多不需要的字符。逗号我可以处理 string.replace() 但我只是想知道是否有另一种方法可以更有效地过滤这些类型的字符?尤其是 txt 文件中的“¬í t[”部分。上面的引号中还显示了其他字符,但我不会在这里复制它们。我输出到文件的代码如下。我正在向 ArrayList 添加几个字符串,但问题似乎出在数组列表本身。如下所示,我已将列表转换为字符串并以这种方式打印到文件中,因为我似乎得到了更少的不需要的字符。任何帮助将不胜感激。

String Output = ScanOutputList.toString();
FileOutputStream fstream = new FileOutputStream("Port_Scan.txt");
ObjectOutputStream ostream = new ObjectOutputStream(fstream);

ostream.writeObject(Output);
ostream.close();
4

2 回答 2

0

如果要将文本写入文件(如 .txt 扩展名所示),请不要使用输出流。使用作家:

FileWriter fw = null;

try {
   fw = new FileWriter(file);
   fw.print(StringUtils.join(collection, System.getProperty("line.separator")));
}
finally {
   IOUtils.closeQuietly(fw);
}

我也不会使用列表中的“toString”方法,因为它为您提供了以下格式:

[ item1.toString(), item2.toString() ]

最好以您想要的格式放置内容。上面的代码将每行放置 1 个项目,并在每个项目之间放置一个换行符(取决于系统)。

如上所述,列表中对象的类型也很重要,因为它在编写对象时会使用“toString()”方法。您可以通过将 StringUtils.join 替换为 for 循环来进行自定义输出,并在循环中准确编写您想要的内容。

于 2012-05-09T22:51:02.997 回答
0

如果一些奇怪的字符是您的主要问题,并且您只是想摆脱所有不是“标准”字符的东西,那么您可以做的是将字符串转换为 char 数组,然后将这些字符转换为整数。如果给定的 int 太大,请将其删除。最后 - 从那些尚未删除的 int 重新创建您的字符串。

于 2012-05-09T15:17:14.267 回答