我正在尝试将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();
答案 0 :(得分:0)
如果一些奇怪的角色是你的主要问题而你只是想摆脱一切不是“标准”角色的东西,那么你可以做的就是将你的字符串char数组转换为整数然后将这些字符转换为整数。如果给定的int太大,请将其删除。最后 - 从那些尚未删除的int重新创建字符串。
答案 1 :(得分: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()”方法。你可以通过用for循环替换StringUtils.join来做自定义输出,并在循环中准确写出你想要的东西。