비용을 입력 할 수있는 코드가 있습니다. 그러나이 프로그램은 Linux의 지정된 폴더에 텍스트 파일을 쓰지 않습니다 (Ubuntu 16.04). 이 프로그램은 코드가 있던 폴더에 파일을 정상적으로 작성하는 데 사용됩니다. 지금은 특정 폴더에 파일을 쓰려고하지만 모든 사용자가 읽기, 쓰기 및 실행 권한을 설정하더라도 파일이 생성되지는 않습니다. 코드를 추가하고 싶습니다. 디렉토리를 만들지 만 특정 디렉토리 안에 파일을 쓰지 못합니다. 어떤 도움이나지도라도 부탁드립니다. 이 오류로 인해 주어진 path.It와 현재없이 디렉토리에 아마내 Java 코드가 Linux에 파일을 작성하지 않습니다.
import java.io.*
import java.util.EnumSet;
import java.util.Set;
public class Create_File {
private Services services = new Services();
final Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxrwxrwx");
public void create_File(String content) {
int product_id =0;
String headline = "XXXX" ;
String username = System.getProperty("user.home");
String dataFolder = System.getProperty("user.home") + "/My_Data/Budget_backup";
System.out.println(username);
File directory = new File(dataFolder+File.separator+"Budget_app_data_expenses");
String name_of_file = "budget_back_up.txt";
File file = new File(directory+File.separator+ name_of_file);
System.out.println(file.toString());
Path path = FileSystems.getDefault().getPath(dataFolder, name_of_file);
if (Files.notExists(path, new LinkOption[]{LinkOption.NOFOLLOW_LINKS})){
try {
Files.createDirectories(
Paths.get(dataFolder),
PosixFilePermissions.asFileAttribute(perms));
//directory.mkdirs();
//file.createNewFile();
product_id = 1;
System.out.println("file created");
FileWriter writer = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(writer);
bw.write(headline);
bw.close();
}catch(IOException ex){
ex.printStackTrace();
}
}else {
product_id = services.max_id();
System.out.println("The directory is already on the computer");
try {
FileWriter writer = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(writer);
bw.write("\n"+ "("+ product_id + " , " +content);
bw.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
}
무엇이 예외입니까? – gusto2
This --- --- java.io.FileNotFoundException : /home/USER/My_Data/Budget_backup/Budget_app_data_expenses/budget_back_up.txt (해당 파일이나 디렉토리가 없음) – hbrtxito
이 [mcve]를 제공하십시오. 파일이있는 실제 URL은 무엇입니까? 퍼미션이란 무엇인가, 또한 java.io는 파일 관리를위한 최신 API가 아니다. 'java.nio'는 예외 메시지에 대해 더 구체적으로 사용하는 것이 더 낫습니다. – AxelH