जावा में डायरेक्टरी में फाइल कैसे बनाएं?


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:" जैसी कोई चीज नहीं है।
मार्सेलो

33
new File("/a/b/test.txt")दोनों प्रणालियों के लिए कार्यों का उपयोग करना । विंडोज पर, यह उसी डिस्क पर लिखा जाएगा जहां जेवीएम चलता है।
बालुसक

6
f.getParentFile().mkdirs(); f.createNewFile();
पैट्रिक बर्गनर

1
त्रुटियों के लिए कॉल की गई विधि (mkdirs और createNewFile) को कॉल करना न भूलें
Alessandro S.

1
if (? file.exists ()) f.createNewFile ();
मेहदी

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

सूचना मैंने विंडोज फाइल सिस्टम में पथों के लिए डबल स्लैश के लिए आगे के स्लैश को बदल दिया। यह दिए गए पथ पर एक खाली फ़ाइल बनाएगा।


1
विंडोज पर, दोनों \\ और / मान्य हैं। createNewFile()जिस तरह से अनावश्यक द्वारा होता है जब आप के साथ यह करने के बारे में FileOutputStreamवैसे भी।
बालुसक

@ एरिक नोटेड एंड करेक्टेड, थैंक यू।
मार्सेलो

इसने फ़ाइल के बजाय test.txt नामक एक निर्देशिका बनाई।
मास्टरजियो 2


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

यह मैक और पीसी के लिए काम करता है।


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();
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.