2017-03-03 225 views
3

我已經嘗試了幾種不同的方法來實現這個功能,而且他們都沒有。我試圖在Java文件夾內創建一個文件。該項目需要有多個文本文件,這些文件都相互關聯,並且將它們放在一個文件夾中更易於管理。理想情況下,該文件夾將存儲在scr/之外。在src文件夾外創建一個文件夾

這裏是我當前的代碼爲它(我不檢查文件是否存在在前):

File testFile = new File("\\appts\\Appointments" + name + ".txt"); 
try { 
    testFile.createNewFile(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

不過,我得到一個IOException當我嘗試運行代碼。我已經試過它是如何在上面的,也是/appts/Appointments,appts/Appointments,appts\\Appointments。我試着在網上搜索,但找不到任何有用的東西。

編輯:這是我的項目設置目前的樣子:

Project_Folder 
    src 
     com 
      weebly 
       roboticplayer 
        appointmentbook 
         CLASSES 

這裏是我希望它看起來:

Project_Folder 
    src 
     com 
      weebly 
       roboticplayer 
        appointmentbook 
         CLASSES 
    appts 
+0

什麼是異常的完整堆棧跟蹤? –

+0

你正在使用哪個操作系統? – smttsp

+0

'java.io.IOException異常:系統無法找到路徑specified' '在java.io.WinNTFileSystem.createFileExclusively(本機方法)' '在java.io.File.createNewFile(來源不明)' '在com.weebly.roboticplayer.appointmentbook.AppointmentRunner.main(AppointmentRunner.java:55)' 55行:'testFile.createNewFile();' 操作系統是Windows 10,IDE就是Eclipse – RoboticPlayer

回答

4

有兩種簡單的方法可以做到這一點:

1)絕對路徑

"C:\\users\\....\\parent_folder\\filename.txt"; 

2)相對路徑,

. (Single dot) is current directory 
..(double dots) is parent directory 

例如,要在項目文件夾下創建文本文件。以下是您的文件結構。

Project_folder 
    src 
     Java_main_file.java 
    appts 

要從Java_main_file.java

String filename = "..\\appts\\filename.txt" 

創建appts下一個文件。然後,用filename創建文件。這裏是一個鏈接如何create a text file

請注意,您需要確保存在您創建文件的文件夾。如果它不存在,你會得到一個錯誤。

+0

但我的問題是如何製作文件夾。您告訴我如何將文件放入文件夾中,這很有幫助,但我仍然不知道如何製作文件夾。我試着調用'testFile.mkdir();'但它什麼都沒做。 – RoboticPlayer

+0

假設你想在'Project_folder'下創建'appts'文件夾。 'new File(「appts \\」)。mkdirs()'將創建文件夾。 – smttsp

+0

編輯過的文章,我希望它看起來如何。它編譯和運行良好,一切,但我找不到文件或文件夾。 – RoboticPlayer

0

您不能在一個步驟中創建文件及其不存在的父目錄,但可以先用File.mkdirs()創建父目錄,然後創建該文件。

0

如果您使用JDK7,則可以使用nio軟件包。

Path path = Paths.get("C:\\appts\\Appointments"); 
Files.createDirectories(path); 

如果你想一個相對路徑做你的當前文件夾:

FileSystems.getDefault().getPath("appts", "Appointments"); 

如果你想看到的絕對路徑:

FileSystems.getDefault().getPath("appts", "Appointments").toAbsolutePath().toString(); 

如果你需要的文件對象:

FileSystems.getDefault().getPath("appts", "Appointments").toFile(); 

你c在調用AbsolutePath()之後也要做.toFile()。

相關問題