web-dev-qa-db-ja.com

Javaでディレクトリにファイルを作成する方法?

C:/a/b/test.txtにファイルを作成したい場合は、次のようにします。

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

また、FileOutputStreamを使用してファイルを作成したいと思います。それで、私はどのようにそれをするでしょうか?何らかの理由でファイルが正しいディレクトリに作成されません。

145
Uerefer

それを行うための最善の方法は次のとおりです。

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();
227
RMT

書き込む前に、親ディレクトリが存在することを確認する必要があります。これは File#mkdirs() で行えます。

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

Java 7 では、 PathPaths 、および 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());
        }
    }
}
33
user1907906

つかいます:

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

Windowsファイルシステムのパスのスラッシュをダブルスラッシュに変更したことに注意してください。これは与えられたパスに空のファイルを作成します。

11
Marcelo

それを行うためのより簡単で簡単な方法:

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

出典

1
Mehdi
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();
    }
}

これはディレクトリの中に新しいファイルを作成するはずです

1
Chitta

指定されたパスに新しいファイルを作成

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
AKHY

驚くべきことに、答えの多くは完全な実用的なコードを与えません。ここにあります:

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
MasterJoe2