2011-11-25 84 views
0

我想在Eclipse中編寫一個簡單的java程序,將這四行輸出到文件「hello.txt」中。問題是,沒有任何事情發生,它不會創建一個新文件,如果我製作一個名爲「hello.txt」的文件,程序不會覆蓋它。我究竟做錯了什麼?感謝您的回答。 :)Simple PrintToFile程序

import java.io.*; 

public class output { 
    { 
     try{ 
      PrintStream output = new PrintStream(new File("hello.txt")); 
      output.println("Hello World!"); 
      output.println("this is "); 
      output.println("four lines of"); 
      output.println("text."); 
     }catch(FileNotFoundException e){ 
      System.out.println("Cannot write file!"); 
     } 
    } 
} 

回答

0

我只是把它在main方法窗口中運行你的代碼和它的作品(它創建文件)。嘗試一個絕對路徑,也許你正在檢查錯誤的目錄。 你也應該叫

output.close(); 
+0

我在Ubuntu 11.10上運行,我添加了output.close();而一個main,並且它仍然不起作用我不能使用絕對路徑,因爲我必須能夠與另外兩個使用Mac和Windows的人共享程序 – Strammefar

+0

我應該補充說,我沒有任何東西在Ubuntu中編程Java的問題到目前爲止,所以這不應該是一個問題? – Strammefar

+0

嘗試僅用於測試目的以使用絕對路徑。您可以使用這些代碼行實現相同的結果\t \t File file = new File( 「hello.txt」); System.out.println(file.getAbsolut ePath()); PrintStream輸出=新的PrintStream(文件); – Giovanni

1
output.close(); 

output.flush(); 

如果您不關閉您的視頻流,他們不會被保存到磁盤。

0

做正確的方法是這樣的

import java.io.*; 
class PrintStreamDemo { 
    public static void main(String args[]){ 
     FileOutputStream out; 
     PrintStream ps; // declare a print stream object 

     try { 
      // Create a new file output stream 
      out = new FileOutputStream("myfile.txt"); 

      // Connect print stream to the output stream 
      ps = new PrintStream(out); 

      ps.println ("This data is written to a file:"); 
      System.err.println ("Write successfully"); 

      ps.close(); 
     } catch (Exception e){ 
      System.err.println ("Error in writing to file"); 
     } 
    } 
} 
0

你應該添加output.close();

try{ 
      PrintStream output = new PrintStream(new File("hello.txt")); 
      output.println("Hello World!"); 
      output.println("this is "); 
      output.println("four lines of"); 
      output.println("text."); 
      output.close(); 
     }catch(FileNotFoundException e){ 
      System.out.println("Cannot write file!"); 
     } 
2

有幾個問題在這裏:

  1. 您需要關閉輸出當你完成後流動output.close();
  2. 類別需要一個main方法void main(String[] args調用輸出例行
  3. 輸出程序需要被封閉在一個方法
+0

在步驟2和3所必需的程序協同工作?我已經添加了一個output.close();和主要方法void main(String [] args,但程序仍然不起作用 – Strammefar

+0

#2是需要的,因爲當您嘗試執行程序時JVM將調用main(如果您沒有main方法,如果你把輸出代碼放在main方法的主體中,你不需要#3 – Chris

0

首先,你必須創建你的文件,如果它不存在。通過這個,您可以創建PrintStream-Object並將您喜歡的內容寫入其中。最後不要忘記刷新並關閉流。

try{ 
File f = new File("C:/hello.txt"); 
if (!f.exists()){ 
    f.createNewFile(); 
} 
PrintStream output = new PrintStream(f); 
output.println("Hello World!"); 
output.println("this is "); 
output.println("four lines of"); 
output.println("text."); 
output.flush(); 
output.close(); 
}catch(FileNotFoundException e){ 
    System.out.println("Fil kan ikke skrives!"); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
0

你需要寫output.close();