Java 将多维数组写入文本文件
我有一项任务,涉及将数组值(写入)传递到Java中的文本(.txt)文件中。这是我第一次使用Java 将多维数组写入文本文件,java,arrays,formatting,text-files,bufferedwriter,Java,Arrays,Formatting,Text Files,Bufferedwriter,我有一项任务,涉及将数组值(写入)传递到Java中的文本(.txt)文件中。这是我第一次使用BufferedWriter,我在if语句上尝试了很多变体,但我无法让我的程序以matrix[I][j]+“,”的格式编写,直到它到达最后一列索引,并在整数后不使用逗号进行写入 我尝试使用BufferedWriter扩展的append() 当前代码 void writeMatrix(String filename, int[][] matrix) { try { BufferedW
BufferedWriter
,我在if
语句上尝试了很多变体,但我无法让我的程序以matrix[I][j]+“,”
的格式编写,直到它到达最后一列索引,并在整数后不使用逗号进行写入
我尝试使用BufferedWriter
扩展的append()
当前代码
void writeMatrix(String filename, int[][] matrix) {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(filename));
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
bw.write(matrix[i][j] + ",");
}
bw.newLine();
}
bw.flush();
} catch (IOException e) {}
}
我需要每行的最后一位不包括逗号和BufferedWriter
显然不喜欢在同一行上同时添加两个write()
方法。那么我该怎么做呢?您可以将最内层的for
循环更改为:
for (int j = 0; j < matrix[i].length; j++) {
bw.write(matrix[i][j] + ((j == matrix[i].length-1) ? "" : ","));
}
比较矩阵[i].length和j,然后决定是否打印“,”。您只需添加一个if-else语句来决定是否打印逗号
希望这有帮助 您可以尝试在迭代中添加if语句。如果j
在最后一列,它不会在文件中打印逗号,否则会打印
void writeMatrix(String filename, int[][] matrix) {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(filename));
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
if(j == matrix[i].length - 1){
bw.write(matrix[i][j]);
} else{
bw.write(matrix[i][j] + ",");
}
}
bw.newLine();
}
bw.flush();
} catch (IOException e) {
//why does the catch need its own curly?
}
}
void writeMatrix(字符串文件名,int[][]矩阵){
试一试{
BufferedWriter bw=新的BufferedWriter(新的FileWriter(文件名));
对于(int i=0;i
希望它能奏效 成功了!但我不确定我是否理解问号和冒号后面的语法,我以前从未见过它们的用法?它本质上是一个缩短的if-else
语句。我会为你提供一个更简单的选择。欢迎来到SO社区(别担心,你的帖子格式不错)!我很高兴我帮了忙(别忘了接受),今天过得很愉快!“将数组传递到txt文件”这句话很尴尬。传递是指将值或引用(通常是驻留在内存中的数据结构)传递给另一个进程或例程,例如传递参数。您不会将数据结构“传递”到持久性存储(如文件)。
for (int j = 0; j < matrix[i].length; j++) {
if(j == matrix[i].length-1) {
bw.write(matrix[i][j]);
} else {
bw.write(matrix[i][j] + ",");
}
}
void writeMatrix(String filename, int[][] matrix) {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(filename));
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
if(j == matrix[i].length - 1){
bw.write(matrix[i][j]);
} else{
bw.write(matrix[i][j] + ",");
}
}
bw.newLine();
}
bw.flush();
} catch (IOException e) {
//why does the catch need its own curly?
}
}