我試着用這些方法創建文件:這段代碼爲什麼不創建文件?
private boolean createFileMain(String path){
File file = new File(path);
if(file.isDirectory()){
return this.createDirectory(file);
} else if(file.isFile()) {
return this.createFile(file);
} else {
return false;
}
}
private boolean createFile(File file){
if(!file.exists()){
if(file.getParentFile().exists()){
try{
if(file.createNewFile()){
return true;
}
}catch(IOException e){
return false;
}
} else {
if(this.createDirectory(file)){
this.createFile(file);
} else {
return false;
}
}
}
return true;
}
private boolean createDirectory(File file){
if(!file.exists()){
if(file.mkdirs()){
return true;
}
return false;
}
return true;
}
的文件的路徑:
/用戶/用戶名/目錄/帳號/
/用戶/用戶名/目錄/ SRCS/FILE1.TXT
/Users/username/Directory/file2.txt
當我嘗試運行這個時,下面的方法拋出一個StackOverFlowError
。
public void writeInFile(String path, List<String> content) {
if ((new File(path)).exists()) {
try {
writer = new PrintWriter(path, "ASCII");
for (String contentItem : content) {
writer.println(contentItem);
}
writer.close();
} catch (FileNotFoundException e1) {
//DO STUFF
} catch (UnsupportedEncodingException e) {
//DO STUFF
}
} else {
this.createFileMain(path);
this.writeInFile(path, content);
}
爲什麼沒有創建文件?
你有調試嗎?另外:在你的catch塊中添加日誌記錄,至少你會被告知是否出現問題 – Stultuske