2011-04-26 15 views
25

मैं अपनी मशीन पर एक विशिष्ट निर्देशिका में फ़ाइल परिणाम.txt लिखना चाहता हूं (Z: \ results सटीक होना)। मैं निर्देशिका को BufferedWriter/FileWriter को निर्दिष्ट करने के बारे में कैसे जा सकता हूं?जावा - मैं एक निर्दिष्ट निर्देशिका में एक फ़ाइल कैसे लिखूं

वर्तमान में, यह फ़ाइल सफलतापूर्वक लिखता है लेकिन निर्देशिका में जहां मेरा स्रोत कोड स्थित है। धन्यवाद

public void writefile(){ 

    try{ 
     Writer output = null; 
     File file = new File("results.txt"); 
     output = new BufferedWriter(new FileWriter(file)); 

     for(int i=0; i<100; i++){ 
      //CODE TO FETCH RESULTS AND WRITE FILE 
     } 

     output.close(); 
     System.out.println("File has been written"); 

    }catch(Exception e){ 
     System.out.println("Could not create file"); 
    } 
} 

उत्तर

21

उपयोग:

File file = new File("Z:\\results\\results.txt"); 

आप के बैकस्लैश दोगुना करने के लिए विंडोज क्योंकि बैकस्लैश चरित्र ही जावा शाब्दिक तार में पलायन है की जरूरत है।

के लिए POSIX लिनक्स जैसे सिस्टम, फॉरवर्ड स्लैश को दोगुना किए बिना डिफ़ॉल्ट फ़ाइल पथ का उपयोग करें। ऐसा इसलिए है क्योंकि जावा में फॉरवर्ड स्लैश बचने वाला चरित्र नहीं है।

File file = new File("/home/userName/Documents/results.txt"); 
4

बस फ़ाइल ऑब्जेक्ट में पूर्ण निर्देशिका स्थान डालें।

File file = new File("z:\\results.txt"); 
+2

वास्तव में आपको बैकस्लैश से बचने की आवश्यकता है: फ़ाइल फ़ाइल = नई फ़ाइल ("z: \\ results.txt"); या बस एक नियमित स्लैश फ़ाइल फ़ाइल = नई फ़ाइल ("z: /results.txt") का उपयोग करें; – leifg

27

आप निर्देशिका जिसमें यह प्रतीकात्मक बनाया जाना है निर्दिष्ट करने के लिए File के लिए secondary constructor उपयोग करना चाहिए। यह महत्वपूर्ण है क्योंकि उत्तर नाम पर निर्देशिका नाम को प्रीपेड करके फ़ाइल बनाने के लिए कहते हैं, इस विधि के रूप में सिस्टम स्वतंत्र नहीं हैं।

नमूना कोड:

String dirName = /* something to pull specified dir from input */; 

String fileName = "test.txt"; 
File dir = new File (dirName); 
File actualFile = new File (dir, fileName); 

/* rest is the same */ 

आशा है कि यह मदद करता है।

+0

या तो 'System.getProperty ("file.separator") का उपयोग करें या ' –

संबंधित मुद्दे