2016-08-29 132 views
-1

我正在嘗試完成一項家庭作業任務,這本來很簡單。我們需要使用JFileChooser從我們的計算機中選擇一個文本文件並將其讀入我們的程序中。讀取和寫入操作BufferedReader和BufferedWriter

然後,我們對原始文本文件的內容運行排序方法。然後我們在最初選擇的文件的同一目錄中創建一個新的文本文件,並將新排序的文本從原始文本文件寫入到新創建的文本文件中。

哪個閱讀器和寫入器實用程序取決於我們。我試圖使用BufferedReader,FileReader,BufferedWriter和FileWriter。

到目前爲止,程序已成功讀取文本文件。排序方法還可以成功對文件進行排序,並且新創建的新輸出文件已成功創建。

的問題是,我似乎無法寫入任何新創建的文件,我每次檢查新文件,它總是空白我想不通,爲什麼我的BufferedWriter對象不工作的時間。任何建議從你友善的人將非常感激!

try 
     { 
      BufferedWriter buff_writer = null; 

      File newFile = new File("C:\\Users\\Gabe\\Documents" 
        + "\\School\\ICS 340\\Assignment 1\\src\\textFile_sorted.txt"); 


      newFile.createNewFile(); 

      file_reader = new BufferedReader(new FileReader(selected_file)); 

      FileWriter file_writer = new FileWriter(newFile.getAbsoluteFile()); 
      buff_writer = new BufferedWriter(file_writer); 

      while((currentLine = file_reader.readLine()) != null) 
      { 

       //testing if I can write the sorted text to my new file 
       buff_writer.write(sort(currentLine.toCharArray())); 

       //testing if I can write the unsorted text to my new file 
       buff_writer.write(currentLine); 

       //random test based on frustration 
       file_writer.write("testing output"); 

       //random test based on frustration 
       file_writer.write(currentLine); 

       //test to see if sort program is working 
       System.out.println(sort(currentLine.toCharArray())); 

      } 

     buff_writer.close();  

     } 
     catch (Exception e1) 
     { 
      e1.printStackTrace(); 
     }  
+0

是否有必要證明這個問題?圖形用戶界面是否與沒有寫入文件的問題相關?排序?如果不是,請刪除它們。請閱讀並申請[mcve]。 –

+0

你嘗試關閉file_writer文件嗎? –

+0

@ Jean-FrançoisFabre謝謝你,當然這很簡單,我應該知道。還有一個問題,我如何在四行(輸入文件被格式化的方式)上獲得輸出,而不是一行上的所有輸出?只是使用「\ n」似乎並沒有工作 – GScott

回答

-1

由於用戶Jean-FrançoisFabre,我找到了解決方案。

我錯過行:

file_writer.close(); 

和我是缺少線條的格式方面:

file_writer.newLine(); 

特別感謝用戶SotiriosDelimanolis和CraigR8806幫助我讓我的帖子更合適。

+0

這是不必要的。 'buff_writer.close();'已經刷新並關閉底層的作者。必須有別的東西你沒有向我們展示,因此請求[mcve]。 –