जावा में फ़ाइलें: 20 मिनट में शुरुआत से विशेषज्ञ तक

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

जावा में फ़ाइलों के साथ काम करना डरावना क्यों नहीं है?

\n\n

हर डेवलपर, भले ही वह केवल जावा में बैकएंड लिखता हो, देर-सबेर डेटा सेव करने, कॉन्फ़िगरेशन पढ़ने या लॉग प्रोसेस करने की आवश्यकता का सामना करता है। जावा में फ़ाइलों और फ़ाइल सिस्टम के साथ काम करना एक बुनियादी कौशल है जो "खिलौना" कंसोल एप्लिकेशन को वास्तविक उपयोगिताओं में बदल देता है। और हाँ, 2024 में हमारे पास न केवल पुराना अच्छा File है, बल्कि शक्तिशाली java.nio.file भी है।

\n\n

इस लेख में हम सब कुछ कवर करेंगे: नोटपैड खोलने से लेकर एक्सेस अधिकारों में हेरफेर तक। चलिए शुरू करते हैं!

\n\n

1. क्लासिक दृष्टिकोण: java.io.File

\n\n

चलिए दादाजी से शुरू करते हैं। File क्लास जावा 1.0 में आया था और आज भी उपयोग किया जाता है। लेकिन ईमानदार रहें: यह सामग्री से ज़्यादा मेटाडेटा के बारे में है। इसकी मदद से आप जांच सकते हैं कि फ़ाइल मौजूद है या नहीं, फ़ोल्डर बना सकते हैं, फ़ाइलों की सूची प्राप्त कर सकते हैं।

\n\n
import java.io.File;\n\npublic class FileExample {\n    public static void main(String[] args) {\n        File file = new File("/home/user/docs/notes.txt");\n        \n        System.out.println("फ़ाइल मौजूद है: " + file.exists());\n        System.out.println("पूर्ण पथ: " + file.getAbsolutePath());\n        System.out.println("आकार: " + file.length() + " बाइट्स");\n        \n        // डायरेक्टरी बनाएँ\n        File dir = new File("/home/user/new_folder");\n        if (dir.mkdir()) {\n            System.out.println("फ़ोल्डर बन गया");\n        }\n    }\n}
\n\n

नुकसान: File बड़ी फ़ाइलों को ठीक से नहीं पढ़ सकता - इसके लिए स्ट्रीम की आवश्यकता होती है। और यह बॉक्स से बाहर सिम्बोलिक लिंक (soft links) का समर्थन नहीं करता। यही कारण है कि Sun (और बाद में Oracle) ने NIO जारी किया।

\n\n

2. फ़ाइलें पढ़ना: InputStream से BufferedReader तक

\n\n

पढ़ना सबसे आम ऑपरेशन है। यदि फ़ाइल टेक्स्ट है, तो BufferedReader का उपयोग करें - यह डेटा को बफर करता है और तेज़ी से काम करता है।

\n\n
import java.io.BufferedReader;\nimport java.io.FileReader;\nimport java.io.IOException;\n\npublic class ReadFile {\n    public static void main(String[] args) {\n        try (BufferedReader br = new BufferedReader(new FileReader("data.txt"))) {\n            String line;\n            while ((line = br.readLine()) != null) {\n                System.out.println(line);\n            }\n        } catch (IOException e) {\n            System.err.println("पढ़ने में त्रुटि: " + e.getMessage());\n        }\n    }\n}
\n\n

बाइनरी फ़ाइलों (चित्र, आर्काइव) के लिए FileInputStream का उपयोग करें:

\n\n
import java.io.FileInputStream;\nimport java.io.IOException;\n\npublic class ReadBinary {\n    public static void main(String[] args) {\n        try (FileInputStream fis = new FileInputStream("image.png")) {\n            byte[] buffer = new byte[1024];\n            int bytesRead;\n            while ((bytesRead = fis.read(buffer)) != -1) {\n                // buffer[0..bytesRead] के टुकड़े को प्रोसेस करें\n            }\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n}
\n\n

महत्वपूर्ण: हमेशा try-with-resources का उपयोग करें - यह स्ट्रीम को बंद करने की गारंटी देता है, भले ही कोई अपवाद हो।

\n\n

3. फ़ाइल में लिखना: BufferedWriter और FileOutputStream

\n\n

लिखना लगभग पढ़ने के सममित है। टेक्स्ट के लिए - BufferedWriter, बाइनरी डेटा के लिए - FileOutputStream।

\n\n
import java.io.BufferedWriter;\nimport java.io.FileWriter;\nimport java.io.IOException;\n\npublic class WriteFile {\n    public static void main(String[] args) {\n        try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {\n            bw.write("नमस्ते, दुनिया!");\n            bw.newLine();\n            bw.write("जावा शक्तिशाली है।");\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n}
\n\n

यदि आपको फ़ाइल को ओवरराइट करने के बजाय अंत में जोड़ना है, तो

ब्लॉग

पुस्तक अनुशंसाएँ