在我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();
}
}
答案 0 :(得分:2)
假设您想要将文件中的内容作为String读取并将其添加到String列表中,您可以先将刚刚读取的缓冲区解析为String并添加它。
List<String> strList = new LinkedList<String>();
strList.add(new String(buffer, 0, numRead));
警告此代码从文件中读取固定长度作为String(不是由换行符分隔)。固定长度由缓冲区大小决定。还要考虑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();