Je veux déposer un fichier .txt sur un lecteur réseau partagé. Le chemin est une carte sur un lecteur réseau qui nécessite des informations d'identification (login et mot de passe). Puis-je transmettre ces paramètres à l'aide de 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){
}
Je vous remercie.
Utilisez la bibliothèque client Java CIFS . vous pouvez connecter une machine Windows à distance via Java. Exemple -
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();
Merci
Ce code a fonctionné pour moi:
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);
}
}