在Java中我想創建一個文件並在其上保存數據。帶有路徑的File
名稱取自用戶。現在,如果用戶給出無效路徑,如C:\temp\./user\fir/st.csv
這是一條無效路徑,因爲"."
和/
在路徑中,而在Windows操作系統"\"
被用作路徑分隔符。如何知道在java中保存文件的無效路徑
執行程序(一命令行工具)之前,沒有temp
文件夾中C:\
目錄,但是當我運行該程序會創建temp
文件夾,然後在temp
它創建user
然後在user
它創建fir
文件夾終於在st.csv
裏面。雖然我希望如果用戶用戶給出這種類型的無效路徑或文件名應通過消息"Invalid path or file name"
注意。
我該怎麼辦?程序代碼如下圖所示:
public class FileTest {
public static void main(String args[]) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter path:");
String path = br.readLine();
File file = new File(path);
String path1 = file.getParent();
File file2 = new File(path1);
if (!file2.exists()) {
System.out.println("Directory does not exist , So creating directory");
file2.mkdirs();
}
if (!file2.exists()) {
System.out.println("Directory can not be created");
} else {
FileWriter writer = new FileWriter(file);
PrintWriter out = new PrintWriter(writer);
System.out.println("Please enter text to write on the file, print exit at new line to if finished");
String line = "";
while ((line = br.readLine()) != null) {
if (line.equalsIgnoreCase("exit")) {
System.out.println("Thanks for using our system");
System.exit(0);
} else {
out.println(line);
out.flush();
}
}
}
}
catch (IOException e) {
e.printStackTrace();
}
}
}
現在,如果我給作爲C:\tump\./user\fir/st.csv
那麼它在C
驅動器tump
創建tump
文件夾,然後用戶,然後在fir
夾user
然後st.csv
文件在它的路徑。
請不要僅從您的其他站點複製並粘貼您的問題。至少要爲StackOverflow正確設置格式。 –
這是我自己在我的項目中遇到的問題,代碼如上,但實際的代碼非常大,這是一個命令行工具,現在我執行縮進 –