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

いくつかの奇妙な文字が主な問題であり、単に「標準」文字ではないものをすべて取り除きたい場合は、文字列を char 配列にキャストしてから、それらの文字を int にキャストすることができます。指定された int が大きすぎる場合は、削除します。最後に、削除されていない int から文字列を再作成します。

于 2012-05-09T15:17:14.267 に答える
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 行に 1 項目を配置し、それぞれの間に改行 (システムに依存) を挿入します。

前述のように、リスト内のオブジェクトのタイプも重要です。これは、オブジェクトを書き込むときに「toString()」メソッドを使用するためです。StringUtils.join を for ループに置き換え、ループ内で必要なものを正確に記述することで、カスタム出力を行うことができます。

于 2012-05-09T22:51:02.997 に答える