如何使用 Java 中的特定顺序使用 'BufferedWriter' 编写数组
How to write an array using 'BufferedWriter' using a specific order in Java
我有一个像 { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }
这样的数组。我想按以下顺序将此数组写入文本文件。
1 5 9
2 6 10
3 7 11
4 8 12
我试过以下代码。但是我无法得到这样的输出。我有一个很大的数据集,我想按照上面的顺序把它们记在一个文本文件中。
public void writeFile() {
try {
File file = new File("D:/test.txt");
file.createNewFile();
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
for (int i = 0; i < num.length; i++) {
bw.write(String.valueOf(num[i]));
bw.newLine();
}
bw.write('\n');
System.out.println();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
对于这个特定问题,您可以尝试在循环中循环,例如:
for (int i = 0; i < 4; i++) {
for (j = 0; j < num.length; j += 4) {
bw.write(String.valueOf(num[i + j]) + ' ');
}
bw.newLine();
}
但是,这适用于您拥有的特定数据集。在不知道您要解决的具体问题(例如要写多少行以及每行要放什么)的情况下,很难知道如何进一步提供帮助,但希望您能理解并能够根据您的需要进行调整具体问题。我猜您可能会使用 'div' 或 'mod' 运算符来计算“4”的真正含义,而不是将“4”硬编码为循环控制和增量。
public static void tst() {
int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
int cs = 3, rs = num.length / cs;
for (int r = 0; r < rs; r++) {
for (int c = 0; c < cs; c++) {
System.out.print(num[c*(cs+1)+r]);
System.out.print(" ");
}
System.out.print("\n");
}
}
1 5 9
2 6 10
3 7 11
4 8 12
我有一个像 { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }
这样的数组。我想按以下顺序将此数组写入文本文件。
1 5 9
2 6 10
3 7 11
4 8 12
我试过以下代码。但是我无法得到这样的输出。我有一个很大的数据集,我想按照上面的顺序把它们记在一个文本文件中。
public void writeFile() {
try {
File file = new File("D:/test.txt");
file.createNewFile();
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
for (int i = 0; i < num.length; i++) {
bw.write(String.valueOf(num[i]));
bw.newLine();
}
bw.write('\n');
System.out.println();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
对于这个特定问题,您可以尝试在循环中循环,例如:
for (int i = 0; i < 4; i++) {
for (j = 0; j < num.length; j += 4) {
bw.write(String.valueOf(num[i + j]) + ' ');
}
bw.newLine();
}
但是,这适用于您拥有的特定数据集。在不知道您要解决的具体问题(例如要写多少行以及每行要放什么)的情况下,很难知道如何进一步提供帮助,但希望您能理解并能够根据您的需要进行调整具体问题。我猜您可能会使用 'div' 或 'mod' 运算符来计算“4”的真正含义,而不是将“4”硬编码为循环控制和增量。
public static void tst() {
int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
int cs = 3, rs = num.length / cs;
for (int r = 0; r < rs; r++) {
for (int c = 0; c < cs; c++) {
System.out.print(num[c*(cs+1)+r]);
System.out.print(" ");
}
System.out.print("\n");
}
}
1 5 9 2 6 10 3 7 11 4 8 12