嗨,我正在处理一个读取输入的字符串,然后在cmd中将它们打印出来 在读出该行之后,我还将其保存到文本文档中,但它输出第一个输入
这是我的代码:
import java.io.*;
public class Stringtest {
public static void main(String[] args) throws IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String[] s = new String[10];
for ( int i = 0; i <= 9; i++ ){
System.out.println ( "ord" + ( i + 1 ) + "?" );
s[i]=input.readLine();
}
for ( int i = 9; i >= 0; i-- ){
System.out.println ( s[i] );
File path = new File("ord.txt");
PrintWriter a = new PrintWriter (path);
a.println ( s[i] );
a.close();
}
}
}
谢谢
答案 0 :(得分:2)
您可以在每次迭代中创建PrintWriter,因此每次都会覆盖该文件 将您的代码更改为:
PrintWriter a = new PrintWriter (path);
for ( int i = 9; i >= 0; i-- ){
System.out.println ( s[i] );
File path = new File("ord.txt");
a.println ( s[i] );
}
a.close();
答案 1 :(得分:0)
将该行放在for(...)
之外PrintWriter a = new PrintWriter(path)
您正在做的是在每次迭代中重新创建它,因此您可以覆盖其中的内容。
答案 2 :(得分:0)
对于问题的提问者,问题是PrintWriter是为循环的每次迭代创建的,因此在循环文件的每次迭代中都被重写。 您可以按如下方式测试:
for (int i = 0; i < 10; i++) {
PrintWriter writer=new PrintWriter("C:/abc.txt");
writer.print("a"+i);
writer.close();
}
在上面的情况下创建的abc.txt只有a9。