所以我在输出时遇到麻烦。我理解这个概念,但是当谈到这个问题时,它有点奇怪。我尝试过不同的打印行,所有打印行都从控制台窗口给出了不同的结果。我还在尝试不同的事情,但我开始没有想法了。谢谢,非常感谢!
这就是我想要的预期输出。
1
1, 2, 3, 4
当我尝试println时,它会对output.println(data [0]);
执行此操作1
, 2, 3, 4
当我进行常规打印时,它会执行此操作
1, 2, 3, 4
这是文本文件print method`
public class JavaApplication1 {
static int[] Array(int[] data) {
int size = 1;
if (data !=null) {
size = 1 +data.length;
}
return new int [size];
}
private static int[] addToArray(int[] data, int x) {
int[] array2 = Array(data);
if(data !=null) {
System.arraycopy(data,0,array2,0,data.length);
}
array2[array2.length - 1] = x;
return array2;
}
private int[] data;
public JavaApplication1 (int[] data, int x) {
this.data = addToArray(data, x);
}
public void printall() {
System.out.print(data[0]);
for (int i = 1; i < data.length; i++) {
System.out.printf(", %d", data[i]);
}
System.out.println();
} public void text() {
try {
PrintWriter output = new PrintWriter("test.txt");
output.print(data[0]);
for (int i = 1; i < data.length; i++) {
output.printf( ", %d", data[i]);
output.flush();
}
} catch (Exception ex) {
}
}
public static void main(String[] args) {
int[] in = {1,2,3};
int[] test = {1,2,3};
int l = 4;
int x = 4;
JavaApplication1 a = new JavaApplication1(null, 1);
a.printall();
JavaApplication1 b = new JavaApplication1(in, x);
b.printall();
JavaApplication1 c = new JavaApplication1(null, 1);
c.text();
JavaApplication1 d = new JavaApplication1(test, l);
d.text();
}
}
答案 0 :(得分:0)
试试这个:
PrintWriter output = new PrintWriter("test.txt");
output.println(data[0]); //this is where you call the println
for (int i = 0; i < data.length; i++) {
output.printf( ", %d", data[i]);
output.flush();
}
答案 1 :(得分:0)
尝试这样做
public void text() {
try {
PrintWriter output = new PrintWriter("test.txt");
for (int i = 0; i < data.length; i++) {
if(i > 0){
output.print(",");
}
output.print(data[i]);
output.flush();
}
} catch (Exception ex) {
}
}
答案 2 :(得分:0)
试试这个:
public void text() {
try {
PrintWriter output = new PrintWriter("test.txt");
output.println(data[0]);
for (int i = 0; i < data.length; i++) {
if (i != (data.length - 1)) {
output.printf("%d, ", data[i]);
} else {
output.printf("%d", data[i]);
}
output.flush();
}
} catch (Exception ex) {
}
}
答案 3 :(得分:0)
要为每个输出循环创建一个新行,并在您编写的每一行中添加“\ n”,或者您可以转换为字符串并将String格式编辑为您想要的任何内容。如果需要,可以添加逗号
string.format()
答案 4 :(得分:0)
问题原因:在您的代码中,每次拨打text()
时,您都要替换现有文件,而不更新或向其添加新数据。
请参阅此SO question
。您可以将printWriter写为
PrintWriter output = new PrintWriter(new BufferedWriter(new FileWriter("test.txt", true)));
我已在本地测试过,请尝试使用此代码。
public void text() {
try {
// Adding data to existing file without replacing it.
PrintWriter output = new PrintWriter(new BufferedWriter(new FileWriter("test.txt", true)));
output.print(data[0]);
for (int i = 1; i < data.length; i++) {
output.printf(", %d", data[i]);
}
output.print("\n"); // Added next line in the file
output.flush();
output.close(); // closing PrintWriter.
} catch (Exception ex) {
// log your exception.
}
}