2012-05-15 18 views
7

का उपयोग करके साझा नेटवर्क ड्राइव पर I/O फ़ाइल लिखें I साझा नेटवर्क ड्राइव पर .txt फ़ाइल को छोड़ना चाहते हैं। पथ नेटवर्कड्राइव पर एक नक्शा है जिसके लिए प्रमाण-पत्र (लॉगिन और पासवर्ड) की आवश्यकता होती है। क्या मैं FileOutputStream का उपयोग करके इन पैरामीटर को पास कर सकता हूं?क्रेडेंशियल्स

 FileOutputStream fos; 
     DataOutputStream dos; 

     try { 
      File file= new File(path + "/" + fileName + ".txt"); 
      fos = new FileOutputStream(file); 
      dos=new DataOutputStream(fos); 
      dos.writeChars(stringContent); 
      dos.close(); 
      fos.close(); 
     } 
     catch(IOException eio){ 
     } 

आप

उत्तर

12

सं उपयोग जावा CIFS Client library धन्यवाद। आप जावा के माध्यम से रिमोट विंडोज मशीन कनेक्ट कर सकते हैं। उदाहरण -

String user = "user:password"; 
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(user); 
String path = "smb://my_machine_name/D/MyDev/test.txt"; 
SmbFile sFile = new SmbFile(path, auth); 
SmbFileOutputStream sfos = new SmbFileOutputStream(sFile); 
sfos.write("Test".getBytes()); 
sfos.close(); 

धन्यवाद

+1

इस के साथ कोई अनुभव नहीं है: अब है कि मैं एक कस्टम लाइब्रेरी का उपयोग करें, मैं में शामिल करने की जरूरत है .jar फ़ाइल या कुछ? इन कक्षाओं के साथ जार फ़ाइल कैसे काम कर सकती है? – Hazaart

+0

jcifs-1.1.11.jar jar डाउनलोड करें [http://jcifs.samba.org/src/](http://jcifs.samba.org/src/) और इस जार को अपने निर्माण पथ में जोड़ें। –

+2

यदि आपके पास डोमेन है तो आपको डोमेन का उपयोग करना होगा; उपयोगकर्ता: पासवर्ड –

0

इस कोड मेरे लिए काम किया:

public void downloadFromNetworkDrive3() throws MalformedURLException, SmbException, IOException { 
     String user = "domain;username:password";//domain name which you connect 
     NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(user); 
     String path = "smb://198.168.20.27/D$/MICROS/opera/export/OPERA/dinaamum/audit/Thumbs.db"; 

     SmbFile sFile = new SmbFile(path, auth); 
     SmbFileOutputStream sfos; 
     SmbFileInputStream sfis; 
     try { 
//  sfos = new SmbFileOutputStream(sFile); 
      sfis = new SmbFileInputStream(sFile); 

//  sfos.write("hihowareyou".getBytes()); 
      File tempFile = null; 
      String filePath = null; 
      filePath = "c://usr/local/cache/leelafiles"; 
      tempFile = new File(filePath); 
      if (tempFile.exists()) { 
      } else { 
       tempFile.mkdirs(); 
      } 
      tempFile = new File(filePath); 
//  File[] allFilesAndDirs = tempFile.listFiles(); 
      FileOutputStream writer = new FileOutputStream(tempFile + File.separator + "Thumbs.db"); 
      byte[] b = new byte[8192]; 
      int n; 
      while ((n = sfis.read(b)) > 0) { 
       System.out.write(b, 0, n); 
       writer.write(b, 0, n); 
      } 
      sfis.close(); 
      writer.close(); 

     } catch (UnknownHostException ex) { 
      Logger.getLogger(ReportSchedulerJob.class.getName()).log(Level.SEVERE, null, ex); 
     } 

    } 
+1

कृपया कोड को डंप न करें, ओपी के संदर्भ में समझाएं .. आपने एक थर्ड पार्टी जार भी शामिल किया है [सीआईएफएस क्लाइंट लाइब्रेरी] (https://jcifs.samba.org/) –

+0

क्षमा करें! हाँ, मैं संदर्भ लिखना भूल गया था हालांकि उपयोगकर्ता कोड और पासवर्ड का उपयोग कर नेटवर्क ड्राइव से किसी भी फाइल को पढ़ने के लिए यह कोड और इसके लिए तीसरे पक्ष के जार सीआईएफएस क्लाइंट लाइब्रेरी की आवश्यकता है –

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