2017-01-02 105 views
0

我正在编写一个代码,用于检查数字是否为素数,如果是,则将其打印在文件中,但是当我打开InputStream时,它会自动删除我的文件中的内容! 这里是我的代码在java中读取文件时删除的内容

import java.util.Scanner; 
import java.io.*; 
@SuppressWarnings("all") 
public class PrimeList { 
public static void main(String[]args) throws NumberFormatException, IOException { 
    String name = "C:\\Text\\primelist.txt"; 
    File file = new File(name); 
    try { 
     OutputStreamWriter wr = new OutputStreamWriter(new FileOutputStream(file)); 
     BigInteger bi = BigInteger.valueOf(5); 
     BigInteger zero = BigInteger.ZERO; 
     BigInteger two = BigInteger.valueOf(2); 
     while(true) { 
      BufferedReader read = new BufferedReader(new InputStreamReader(new FileInputStream(file))); 
      while(true) { 
       BigInteger prime = BigInteger.valueOf(Long.parseLong(read.readLine())); 

谁能告诉我如何解决这一问题?

+0

请显示您的程序的完整代码。 – Divers

+0

您正在读取和写入同一个文件...首先阅读文件...然后创建新文件并将结果追加到该文件中。 –

回答

2

因为你这样做

的BufferedReader读=新的BufferedReader(新的InputStreamReader(新的FileInputStream(文件)));

你正在创造新的FileInputStream(文件)每次调用该方法

2

new FileOutputStream(file, true)应使用时间。 '真'表示'追加'。