这个问题在这里已经有答案了:
文件写入-printstream append(2个答案)
四年前关门了。
我试图读取文件“ab.txt”并将其内容保存在“output.txt”中第k次,因此我假设在输出文件中获取输入文件k次的内容,但是我只获取了一次,而它在控制台上第k次打印。
import java.io.*;
import java.util.Scanner;
class PrintStreamTest1
{
public static void main(String... l)throws IOException
{
int k=0;
long avgTime=0;
while(k<100)
{
long startTime=System.nanoTime();
String s;
Scanner fin=new Scanner(new BufferedInputStream(new FileInputStream("ab.txt")));
PrintStream output=new PrintStream("Output.txt");
while(fin.hasNextLine())
{
s=fin.nextLine();
System.out.println(s);
output.print(s+"\n");
}
avgTime=avgTime+((System.nanoTime()-startTime)/10000000);
fin.close();
output.close();
k++;
}
System.out.println("\n "+ avgTime+"ms");
}
}
1条答案
按热度按时间v8wbuo2f1#
正如您在javadoc中看到的那样,您使用了错误的构造函数:
printstream(字符串文件名)
...
filename要用作此打印流目标的文件名。如果文件存在,那么它将被截断为零大小;否则,将创建一个新文件。输出将写入文件并进行缓冲。
您应该打开与
PrintStream
在追加模式下,如果不希望在循环的每次迭代中覆盖该文件的内容:或者,在循环之前打开一次文件,在循环之后关闭一次。