0

out.write(buffer、0、rumRead)の行で、ファイルに書き込む代わりに、定義されたリストにそれを追加するにはどうすればよいですか?オブジェクトリストに追加しようとしましたが、うまくいきません。これが私の復号化方法です:

public static void decrypt(String file) {
    try {
        File output = new File(file.replace(encryptedFileType, initialFileType));
        if (!(output.exists())) {
            output.createNewFile();
        }
        InputStream in = new FileInputStream(file.replace(initialFileType, encryptedFileType));
        OutputStream out = new FileOutputStream(output);
        in = new CipherInputStream(in, dcipher);
        int numRead = 0;
        while ((numRead = in.read(buffer)) >= 0) {
            out.write(buffer, 0, numRead);
        }
        out.close();
        new File(file.replace(initialFileType, encryptedFileType)).delete();
        } catch (IOException e) {
        e.printStackTrace();
    }
}
4

1 に答える 1

2

ファイルからコンテンツを文字列として読み取り、それを文字列リストに追加すると仮定すると、最初に文字列として読み取ったバッファを解析して追加できます。

List<String> strList = new LinkedList<String>();
strList.add(new String(buffer, 0, numRead));

このコードは、ファイルから固定長を文字列 (改行で区切られていない) として読み取ることに注意してください。固定長は、バッファ サイズによって決まります。また、LinkedList データ構造が適切かどうかも検討してください

BufferedReader を使用して、改行で区切られたデータをファイルから読み取ることができます。

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("file.txt")));
List<String> strList = new LinkedList<String>();
String line = reader.readLine(); // will return null if reached end of stream
while(line != null) {
   strList.add(line); // add into string list
   line = reader.readLine(); // read next line
}
reader.close();
于 2013-03-19T05:15:14.197 に答える