【发布时间】:2014-07-19 13:06:37
【问题描述】:
我使用这个在文件中创建一个整数矩阵,我想在创建它之后覆盖一个值,这是代码:
import java.io.File;
import java.io.FileWriter;
public class main {
public static void main(String[] args) {
File file = new File("foo/file.txt");
FileWriter writer = null;
try {
file.createNewFile();
writer = new FileWriter(file);
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
writer.write(String.valueOf(0) + " ");
}
writer.write("\n");
}
} catch (Exception e) {
e.printStackTrace();
}
try {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (i == 3)
writer.write(String.valueOf(1) + " ");
}
}
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
有什么建议吗? 谢谢。
【问题讨论】:
-
“不起作用”是什么意思。发生什么了?如果错误出现在“...”部分,您能否显示“不工作”示例的所有代码?
-
"有什么建议吗?"是的。不要那样做。将修改后的内容写入新文件,并且仅在成功重命名为原始文件的情况下。如果覆盖失败,你认为会发生什么?
-
"doesn't work"我的意思是矩阵保持不变,在调用overwrite()之后不会分配任何更改 -
一方面,
if语句的主体将执行多次......即,对于整行(i将是 4 对于j的每个值)。如果您只想写入单个值,则必须进一步缩小范围。 -
我很确定您的意思不是“被批准”——Java 并没有那么神奇。这是否与您之前的
writer相同,以便将新文本附加到先前的输出中?或者你想写一个新文件?或者覆盖您之前创建的同一个文件?请说明你在做什么。
标签: java