[英]How to write or append string in loop in a file in java?
我在处理非常大的数据集时遇到内存问题,并且使用 char[] 和 Strings 出现内存泄漏,不知道为什么! 所以我想在文件中写入一些处理过的数据而不是存储在内存中。 因此,我想使用循环从文件中的 arrayList 写入文本。 首先,程序将检查当前工作目录中是否已存在特定文件,如果不存在,则创建具有特定名称的文件,并开始使用循环从 arrayList 逐行写入文本; 如果文件已经存在,则打开文件并在文件的最后一行(在新行中)后附加第一个数组值,并开始逐行在循环中写入其他数组值。
任何机构都可以建议我如何在 Java 中做到这一点? 我不太擅长 Java,所以如果可能,请提供一些示例代码。
谢谢!
试试这个
ArrayList<String> StringarrayList = new ArrayList<String>();
FileWriter writer = new FileWriter("output.txt", true);
for(String str: StringarrayList ) {
writer.write(str + "\n");
}
writer.close();
我不确定您不确定流程的哪些部分,所以我将从头开始。
Serializable
接口允许您将对象写入文件。 任何实现Serializable
对象都可以传递给ObjectOutputStream
并写入文件。
ObjectOutputStream
接受FileOutputStream
作为参数,它可以附加到文件。
ObjectOutputstream outputStream = new ObjectOutputStream(new FileOutputStream("filename", true));
outputStream.writeObject(anObject);
有一些异常处理需要处理,但这些是基础知识。 请注意, anObject
应该实现Serializable
。
读取文件非常相似,只是它使用了我提到的类的 Input 版本。
// 在主
List<String> SarrayList = new ArrayList<String>();
.....
用内容填充它
enter content to SarrayList here
.....
写入文件
appendToFile (SarrayList);
.....
public void appendToFile (List<String> SarrayList) {
BufferedWriter bw = null;
boolean myappend = true;
try {
bw = new BufferedWriter(new FileWriter("myContent.txt", myappend));
for(String line: SarrayList ) {
bw.write(line);
bw.newLine();
}
bw.flush();
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
if (bw != null) try {
bw.close();
} catch (IOException ioe2) {
// ignore it or write notice
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.