2011-07-16 60 views
1

我知道有大概有幾百處理這個問題詢問職位,但對我的生活,我想不出任何東西了。我在這個程序中有這個「開放」的例子,我已經承諾完成,作爲Java開始的練習。我已經獲得了Save函數的工作,但看着這個讓我不再接近嘗試我的問題。這是我的代碼。讀/打開一個文本文件中的Java

if(arg.equals(Editor.fileLabels[0])){ 
    if(Editor.VERBOSE) 
    System.err.println(Editor.fileLabels[0] + 
       " has been selected"); 
    filedialog = new FileDialog(editor, "Open File Dialog", FileDialog.LOAD); 
    filedialog.setVisible(true); 
    if(Editor.VERBOSE){ 
    System.err.println("Exited filedialog.setVisible(true);"); 
    System.err.println("Open file = " + filedialog.getFile()); 
    System.err.println("Open directory = " + filedialog.getDirectory()); 
    } 

} 

在寫這個問題之前,我已經嘗試過解決方案;然而,我見過的所有例子都是他們自己的獨立方法。任何幫助,將不勝感激。 :)

+2

是啊,我不知道你問這裏。 –

+0

在當今時代,不要使用AWT組件。 Swing文件選擇器是[JFileChooser](http://download.oracle.com/javase/6/docs/api/javax/swing/JFileChooser.html)。 –

+0

@Andrew:的一個優點['java.awt.FileDialog'](http://java.sun.com/javase/6/docs/api/java/awt/FileDialog.html)是它通常喚起平臺的本地文件對話框;另請參閱此[示例](http://stackoverflow.com/questions/2914627/file-explorer-using-java-how-to-go-about-it/2914733#2914733)。 – trashgod

回答

2

無論UI框架,您使用的,你只會有可用的文件對話框的結果它是由用戶關閉後。在你的情況下,你已經顯示對話框,並立即期望目錄和文件可用。這不會發生,因爲對話可能仍然是開放的。

而且這一切都基於我的猜測,因爲你沒有真正告訴你會發生什麼是錯的,什麼。

+0

@Andrew當然。我的Swing和AWT時代早已逝去。但我非常肯定,來自awt或JFileChooser的FileDialog不會在'setVisible'上等待,那就是我的觀點。所以我刪除了Swing這個詞,以免冒犯這個領域的專家。 –

+0

*「..我刪除了單詞Swing ..」* +1 –

1

公共類FileReadWrite {

public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    try { 
     // Open the file that is the first 
     // command line parameter 
     FileInputStream fstream = new FileInputStream("Path for the file/filename.txt"); 

     // Get the object of DataInputStream 
     DataInputStream in = new DataInputStream(fstream); 
     BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
     String strLine; 
     File file = new File("Path for the file/filename.txt"); 
     Writer writer = new BufferedWriter(new FileWriter(file)); 


     //Read File Line By Line 
     while ((strLine = br.readLine()) != null) { 
      // Print the content on the console 
      System.out.println (strLine); 
      String[] words = strLine.split("\\s+"); 
      String revrseStrline=""; 
      for(int i=words.length-1;i>=0; i--) 
      { 
       revrseStrline+=words[i]+" "; 
      } 

      writer.write(revrseStrline); 
      writer.write(System.getProperty("line.separator")); 

      } 

     // Close the input stream 
     in.close(); 
     writer.close(); 
    } catch (Exception e) { // Catch exception if any 
     System.err.println("Error: " + e.getMessage()); 
    } 
} 

}

+0

上面的代碼完全可以工作,您可以按原樣使用它。 – CodeFlash