我有一个fileWrite()方法,它接受两个字符串值作为参数(特定的数组值)。我将此方法包含在for循环中,这样它就可以循环遍历数组并获得要写入文件的字符串值
public void writeFile(String ip, String vals) {
try {
bw = new BufferedWriter(new FileWriter("Finished.txt"));
bw.write(ip + ": " + vals );
bw.newLine();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
我在代码中包含的方法如下所示:
for (int i = 0 ; i < address.length ; i++) {
writeFile(address[i][0], address[i][1]);
}
似乎只是将数组中的最后一个值写入文本文件。
在循环中使用另一个构造函数
FileWriter(File file,
boolean append)
或更好
就像@climbage所说的,您正在覆盖您的文件。
我建议两种解决方案中的一种:
1)通过引用传递BufferedWriter,并将函数名更改为writeLineToFile(为了清楚起见):
void callingFunction()
{
<<get line>>
bw = new BufferedWriter(new FileWriter("Finished.txt"));
writeLineToFile(bw, ip, vals);
bw.close();
}
void writeLineToFile (BufferedWriter &bw, String ip, String vals)
{
<<do something>>
}
或
2)将要写入的整个文件分组到字符串数组中,并将其传递给函数:
void writeFile (std::vector<String> &ip, std::vector<String> &vals)
{
<<check that vectors are same size>>
int len = ip.size();
bw = new BufferedWriter(new FileWriter("Finished.txt"));
for (int i=0; i < len; ++i)
{
<<do something>>
}
bw.close();
}
相应的,文件读取有了,自然有文件写入类,使用方式与FileReader也类似: FileWriter writer = new FileWriter("test.properties"); writer.write("test"); 写入文件分为追加模式和覆盖模式两类,追加模式可以用append方法,覆盖模式可以用write方法,同时也提供了一个write方法,第二个参数是可选覆盖模式。 同样,
问题内容: 我有下面的代码 执行后,文件创建成功,但创建的文件为空 那么代码有什么问题呢? 问题答案: 您必须关闭,否则不会刷新当前缓冲区。您可以直接调用该方法。 如果要关闭文件,则无需使用该方法。该可用于例如,如果一会你的程序运行和输出文件中的东西,你想在其他地方检查。
我怎样才能使它出现而不必按回车键?!
我创建了一个Java游戏,当游戏结束时,执行一个方法,告诉用户输入他/她的名字,然后他们的分数将保存在playscores中。txt文档。这很好用。然而,我想要的不仅仅是这份文件中一个人的分数。我想要它,这样每个玩游戏的名字和分数将保存在这个文件中。非常感谢您的帮助。 这是我的gameComplete方法代码: 我尝试过不同的东西,比如Objectoutputstream,但不幸的是,我不知道该怎
好吧,opencsv有点工作,除了一次只写一行,删除以前的信息。如果我想要这样的csv: 汽车、年份、型号 马自达,1996年,模型a 法拉利,1998年,型号b 所以我每次得到的只是最后一行,无论我输入多少信息,代码都是这样的: 根据教程和例子,我看到这个代码应该工作,请帮助? array_body是"part_a#part_b#part_c"
本文向大家介绍C#获取指定目录最后写入时间的方法,包括了C#获取指定目录最后写入时间的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#获取指定目录最后写入时间的方法。分享给大家供大家参考。具体如下: C#返回指定目录最后写入时间,主要用到了DirectoryInfo的LastWriteTime属性 希望本文所述对大家的C#程序设计有所帮助。