Java의 디렉토리에 파일을 만드는 방법은 무엇입니까?


156

에 파일을 만들려면 C:/a/b/test.txt다음과 같이 할 수 있습니까?

File f = new File("C:/a/b/test.txt");

또한 FileOutputStream파일을 만드는 데 사용하고 싶습니다 . 어떻게하면 되나요? 어떤 이유로 파일이 올바른 디렉토리에 작성되지 않습니다.

답변:


245

가장 좋은 방법은 다음과 같습니다.

String path = "C:" + File.separator + "hello" + File.separator + "hi.txt";
// Use relative path for Unix systems
File f = new File(path);

f.getParentFile().mkdirs(); 
f.createNewFile();

35
유닉스 시스템에는 "C :"와 같은 것이 없기 때문에 리눅스에서는 작동하지 않습니다.
Marcelo

33
사용하여 new File("/a/b/test.txt")두 시스템에 대한 작품. Windows에서는 JVM이 실행되는 곳과 동일한 디스크에 기록됩니다.
BalusC

6
f.getParentFile().mkdirs(); f.createNewFile();
Patrick Bergner

1
호출 된 메소드 (mkdirs 및 createNewFile) 호출에서 오류가 있는지 확인하는 것을 잊지 마십시오.
Alessandro S.

1
if (! file.exists ()) f.createNewFile ();
Mehdi

50

쓰기 전에 상위 디렉토리가 존재하는지 확인해야합니다. 에 의해이 작업을 수행 할 수 있습니다 File#mkdirs().

File f = new File("C:/a/b/test.txt");
f.getParentFile().mkdirs();
// ...

38

함께 자바 7 , 당신이 사용할 수있는 Path, Paths그리고 Files:

import java.io.IOException;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class CreateFile {

    public static void main(String[] args) throws IOException {
        Path path = Paths.get("/tmp/foo/bar.txt");

        Files.createDirectories(path.getParent());

        try {
            Files.createFile(path);
        } catch (FileAlreadyExistsException e) {
            System.err.println("already exists: " + e.getMessage());
        }
    }
}

12

사용하다:

File f = new File("C:\\a\\b\\test.txt");
f.mkdirs();
f.createNewFile();

Windows 파일 시스템의 경로에 슬래시를 이중 백 슬래시로 변경했습니다. 주어진 경로에 빈 파일이 생성됩니다.


1
Windows에서는 \\와 /가 모두 유효합니다. 은 createNewFile()당신이 쓸 때 불필요한 방법입니다 FileOutputStream어쨌든.
BalusC

@Eric 주목하고 고맙습니다. 감사합니다.
Marcelo

파일 대신 test.txt라는 디렉토리가 작성되었습니다.
MasterJoe2

3

더 좋고 간단한 방법 :

File f = new File("C:/a/b/test.txt");
if(!f.exists()){
   f.createNewFile();
}

출처


2
String path = "C:"+File.separator+"hello";
String fname= path+File.separator+"abc.txt";
    File f = new File(path);
    File f1 = new File(fname);

    f.mkdirs() ;
    try {
        f1.createNewFile();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

이것은 디렉토리 안에 새로운 파일을 만들어야합니다


0

지정된 경로에 새 파일 작성

import java.io.File;
import java.io.IOException;

public class CreateNewFile {

    public static void main(String[] args) {
        try {
            File file = new File("d:/sampleFile.txt");
            if(file.createNewFile())
                System.out.println("File creation successfull");
            else
                System.out.println("Error while creating File, file already exists in specified path");
        }
        catch(IOException io) {
            io.printStackTrace();
        }
    }

}

프로그램 출력 :

파일 생성 성공


0

놀랍게도 많은 답변이 완전한 작업 코드를 제공하지 않습니다. 여기있어:

public static void createFile(String fullPath) throws IOException {
    File file = new File(fullPath);
    file.getParentFile().mkdirs();
    file.createNewFile();
}

public static void main(String [] args) throws Exception {
    String path = "C:/donkey/bray.txt";
    createFile(path);
}

0

파일을 만들고 거기에 문자열을 쓰려면 :

BufferedWriter bufferedWriter = Files.newBufferedWriter(Paths.get("Path to your file"));
bufferedWriter.write("Some string"); // to write some data
// bufferedWriter.write("");         // for empty file
bufferedWriter.close();

이것은 Mac과 PC에서 작동합니다.


0

FileOutputStream을 사용하려면 다음을 시도하십시오.

public class Main01{
    public static void main(String[] args) throws FileNotFoundException{
        FileOutputStream f = new FileOutputStream("file.txt");
        PrintStream p = new PrintStream(f);
        p.println("George.........");
        p.println("Alain..........");
        p.println("Gerard.........");
        p.close();
        f.close();
    }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.