मैं ग्रंथों को पढ़ सकता हूं और उन्हें कंसोल पर लिख सकता हूं, हालांकि जब मैं इस एप्लिकेशन को किसी अन्य कंप्यूटर पर स्थापित करता हूं, जहां भी यह स्थापित होता है, तो मैं txt फ़ाइल का पथ बदलना नहीं चाहता हूं। मैं इसे इस तरह लिखना चाहता हूँ

BufferedReader in = new BufferedReader(new FileReader("xxx.txt"));

मैं नहीं करना चाहता हूं:

BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\abcde\\Desktop\\xxx.txt"));

क्या इस txt फ़ाइल को दिखाने का कोई तरीका है? वैसे मैंने इस txt फ़ाइल को स्रोतों के अंदर रखा है लेकिन यह पढ़ नहीं सकता है!

1
albatross 7 सितंबर 2011, 00:55

7 जवाब

सबसे बढ़िया उत्तर

पहले डिफ़ॉल्ट एप्लिकेशन पथ प्राप्त करें, फिर जांचें कि फ़ाइल मौजूद है या नहीं, यदि मौजूद नहीं है तो जारी रखें।

 String path = System.getProperty("user.dir");
      System.out.println(path + "\\disSoruCevap.txt");
      File file = new File(path + "\\disSoruCevap.txt");


      if (!file.exists()) {
          System.out.println("System couldnt file source file!");
          System.out.println("Application will explode");
      }

संपादित करें*

कृपया संसाधन स्ट्रीम का उपयोग करके किसी एक उत्तर को प्राथमिकता दें, जैसा कि आप टिप्पणियों से देखेंगे कि user.dir का उपयोग करना हर मामले में सुरक्षित नहीं है।

2
HRgiger 29 जून 2016, 11:30

आप यह ढूंढ रहे हैं :

BufferedReader in = new BufferedReader(getClass().getResourceAsStream("/xxx.txt"));

यह आपकी जार फ़ाइल से xxx.txt लोड करेगा (या आपके वर्ग पथ में कोई भी जार फ़ाइल जिसकी मूल निर्देशिका के अंदर वह फ़ाइल है)।

1
Simone Gianni 7 सितंबर 2011, 01:00
URL fileURL= yourClassName.class.getResource("yourFileName.extension");
String myURL= fileURL.toString();

अब आपको लंबे पथ नाम की आवश्यकता नहीं है, साथ ही यह प्रकृति में गतिशील है यानी, अब आप अपनी परियोजना को किसी भी पीसी, किसी भी ड्राइव पर ले जा सकते हैं।
ऐसा इसलिए है क्योंकि यह आपके क्लास स्थान का उपयोग करके यूआरएल तक पहुंचता है न कि किसी स्थिर द्वारा स्थान (जैसे c:\folder\ab.mp3, तो यदि आप D ड्राइव में जाते हैं तो आप उस फ़ाइल तक नहीं पहुंच सकते क्योंकि तब आपको D:/folder/ab.mp3 को मैन्युअल रूप से बदलना होगा जो प्रकृति में स्थिर है)
(नोट: बस उस फाइल को अपने प्रोजेक्ट के साथ रखें)

आप fileURL का उपयोग इस प्रकार कर सकते हैं: फ़ाइल फ़ाइल = नई फ़ाइल (fileURL.toURI ());
आप myURL का उपयोग इस प्रकार कर सकते हैं: Media MusicFile=new Media(myURL); // javaFX में जिसे स्ट्रिंग की जरूरत है न कि फाइल के url की

1
G33K_C0D3R 26 मार्च 2016, 23:29
    InputStream input = Class_name.class.getResourceAsStream("/xxx.txt");
    InputStreamReader inputReader = new InputStreamReader(input);

    BufferedReader br = new BufferedReader(inputReader);
    String line = null;
    try {
        while((line = br.readLine())!=null){
            System.out.println(line);
        }
    } catch (IOException ex) {
        ex.printStackTrace();
    }

आपको लंबा रास्ता लिखने या उल्लेख करने की आवश्यकता नहीं है। इस कोड का उपयोग करके Class_name.class.getResourceAsStream("/xxx.txt"), आप आसानी से अपनी फ़ाइल प्राप्त कर सकते हैं।

1
Arif Rafsan 20 मार्च 2019, 09:18

BufferedReader in = new BufferedReader(new FileReader("xxx.txt")); ठीक काम करता है क्योंकि जब आप अपना एप्लिकेशन किसी IDE पर चलाते हैं, तो xxx.txt स्पष्ट रूप से Java की कार्यशील निर्देशिका में पड़ा होता है। वर्किंग डायरेक्टरी एक ऑपरेटिंग सिस्टम फीचर है और इसे बदला नहीं जा सकता है। इससे निपटने के कुछ तरीके हैं।

1 - फ़ाइल कंस्ट्रक्टर new File(parent, filename); का उपयोग करें और एक public static final स्थिरांक या एक संपत्ति (या तो कमांड लाइन से या अन्यथा पारित) का उपयोग करके माता-पिता को लोड करें

2 - या InputStream in = YourClass.class.getClassLoader().getResourceAsStream("xxx.txt") का उपयोग करें; - बशर्ते आपकी xxx.txt फ़ाइल उसी स्थान पर पैक की गई हो जहां YourClass

1
ring bearer 25 फरवरी 2020, 17:42

प्रयत्न:

InputStream is = ClassLoader.getSystemResourceAsStream("xxx.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(is));

आपके क्लासपाथ के रूट की तुलना में आपकी फ़ाइल वास्तव में कहां है, इस पर निर्भर करते हुए, आपको xxx.txt3 को /xxx.txt से बदलना पड़ सकता है।

0
Jean Logeart 7 सितंबर 2011, 12:34

मेरे फ़ाइल पथ इस प्रकार हैं:

public final static String COURSE_FILE_LOCATION = "src/main/resources/courses.csv";

    public final static String PREREQUISITE_FILE_LOCATION = "src/main/resources/prerequisites.csv";

यह काम नहीं करता है। इसलिए मैं प्रोजेक्ट से .iml फ़ाइल, .idea और target फ़ोल्डर को हटाता हूं और उन्हें पुनः लोड करता हूं।

इस तरह पढ़ें सही रास्ता:

enter image description here

यह तब काम करेगा।

0
Arefe 18 अप्रैल 2021, 05:17