2010-05-03 3 views
1

Я не программист на Java, я программист VB. Я делаю это как часть задания, однако я не прошу о помощи в отношении какого-то присвоения. Я хотел бы выяснить, как получить OutputStreamWriter для правильной работы в этом случае. Я просто хочу захватить значения, которые я генерирую, и поместить их в текстовый документ. Файл создается, но существует только одна запись, а не 40, которую я ожидаю. Я мог сделать это в одно мгновение с VB, но java чувствует себя очень странно для меня прямо сейчас. Ваша помощь приветствуется.Пытается написать цикл, который использует OutputStream для записи в текстовый файл

Спасибо,

Стив

Вот код:

public static void main(String[] args) { 
    long start, end; 
    double result,difference; 

    try { 
     //OutputStream code assistance from 
     // http://tutorials.jenkov.com/java-io/outputstreamwriter.html 
     OutputStream outputStream = new FileOutputStream("c:\\Temp\\output1.txt"); 
     Writer out = new OutputStreamWriter(outputStream); 

     for(int n=1; n<=20; n++) { 
     //Calculate the Time for n^2. 
     start = System.nanoTime(); 

     //Add code to call method to calculate n^2 
     result = mN2(n); 
     end = System.nanoTime(); 
     difference = (end - start); 

     //Output results to a file 
     out.write("N^2 End time: " + end + " Difference: " + 
      difference + "\n"); 
     out.close(); 
     } 
    } catch (IOException e){ 
    } 

    try { 
     OutputStream outputStream = new FileOutputStream("c:\\Temp\\output1.txt"); 
     Writer out = new OutputStreamWriter(outputStream); 

     for(int n=1; n<=20; n++){ 
     //Calculate the Time for 2^n. 
     start = System.nanoTime(); 
     //Add code to call method to calculate 2^n 
     result = m2N(n); 
     end = System.nanoTime(); 
     difference = (end - start); 
     //Output results to a file 
     out.write("N^2 End time: " + end + " Difference: " + difference + "\n"); 
     out.close(); 
     } 
    } catch (IOException e){ 
    } 
    } 

    //Calculate N^2 
    public static double mN2(double n) { 
    n = n*n; 
    return n; 
    } 

    //Calculate 2N 
    public static double m2N(double n) { 
    n = 2*n; 
    return n; 
    } 

ответ

4

Вы закрытия файла в цикле. В следующий раз вокруг цикла вы попытаетесь записать в закрытый файл, который будет генерировать исключение ... но где вы поймаете IOException, у вас есть пустой блок, который эффективно игнорирует исключение.

Попытка перемещения out.close() вызова в finally блок, как это:

try { 
    ... 
} 
catch (IOExcetpion e) { 
    // Log any errors 
} 
finally { 
    out.close(); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^