簡體   English   中英

寫入文件,輸出文件在哪里?

[英]Writing to a file, where is the output file?

        FileWriter outFile = null;
        try {
            outFile = new FileWriter("member.txt");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
out.println("test");

運行該命令,member.txt在哪里? 我正在使用Windows vista。 UAC啟用所以當我運行它時,我不認為它正在寫入txt文件。 但是創建了txt文件,但它是空的。

Java IO中的相對路徑與當前工作目錄相關。 在Eclipse中,通常是項目根目錄。 你也寫out而不是outFile 這是一個小改寫:

    File file = new File("member.txt");
    FileWriter writer = null;
    try {
        writer = new FileWriter(file);
        writer.write("test");
    } catch (IOException e) {
        e.printStackTrace(); // I'd rather declare method with throws IOException and omit this catch.
    } finally {
        if (writer != null) try { writer.close(); } catch (IOException ignore) {}
    }
    System.out.printf("File is located at %s%n", file.getAbsolutePath());

關閉是必需的,因為它將寫入的數據刷新到文件中並釋放文件鎖。

不用說,在Java IO中使用相對路徑是一種不好的做法。 如果可以,而是使用類路徑。 ClassLoader#getResource()getResourceAsStream()等等。

如果文件成功創建(未引發異常),則它位於當前工作目錄中。

對於您正在執行的Java類,右鍵單擊該文件並轉到“運行方式 - >運行配置...”

在此屏幕中,轉到“參數”選項卡。 在屏幕底部,查找“工作目錄”設置。 這是Java類將從中運行的目錄。

在您的示例中,您在當前目錄中創建“member.txt”,因此它將顯示在“工作目錄”設置的任何位置。

這取決於您正在使用的IDE。 它通常會進入file.java所在的同一目錄。 我認為像Eclipse和Netbeans這樣的程序可能會把它扔到另一個目錄中。

如果從Eclipse運行,則當前工作目錄將是項目的基本目錄(查看項目屬性以在磁盤上查找該位置)。 您應該能夠通過刷新項目在Project Explorer中查看該文件(單擊該項目並按F5 )。

您可以從“參數”選項卡下的“運行配置”對話框中指定備用工作目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM