Прочитайте удаленный файл в java, который нуждается в имени пользователя и пароле

Я пытаюсь прочитать удаленный файл в java

File f = new File("//192.168.1.120/home/hustler/file.txt"); 

Для удаленного компьютера требуется имя пользователя и пароль, чтобы я мог получить доступ к файлу.

Есть ли способ передать параметры через код Java и прочитать файл?

 package com.eiq; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.apache.commons.vfs.FileObject; import org.apache.commons.vfs.FileSystemOptions; import org.apache.commons.vfs.Selectors; import org.apache.commons.vfs.UserAuthenticator; import org.apache.commons.vfs.VFS; import org.apache.commons.vfs.auth.StaticUserAuthenticator; import org.apache.commons.vfs.impl.DefaultFileSystemConfigBuilder; public class RemoteFileDemo { public static void main(String[] args) throws IOException { String domain="hyd\\all"; String userName="chiranjeevir"; String password="[email protected]"; String remoteFilePath="\\\\10.0.15.74\\D$\\Suman\\host.txt"; File f=new File("E:/Suman.txt"); //Takes the default path, else, you can specify the required path if(f.exists()) { f.delete(); } f.createNewFile(); FileObject destn=VFS.getManager().resolveFile(f.getAbsolutePath()); //domain, username, password UserAuthenticator auth=new StaticUserAuthenticator(domain, userName, password); FileSystemOptions opts=new FileSystemOptions(); DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth); FileObject fo=VFS.getManager().resolveFile(remoteFilePath,opts); System.out.println(fo.exists()); //fo.createFile(); destn.copyFrom(fo,Selectors.SELECT_SELF); destn.close(); //InputStream is=new FileInputStream(f); } } 

Это программа для чтения файла с удаленного компьютера и сохранения его на нашей локальной машине в виде файла E:/Suman.txt .

Будьте осторожны при написании пути к файлу, а не : мы должны заменить его символом $ , например: D:\Suman\Boorla\kpl.txt неверно, D$\\Suman\\Boorla\\kpl.txt прав ,

В вышеуказанной программе вы должны изменить имя домена, имя пользователя, пароль и путь к файлу удаленного компьютера. Для работы с вышеуказанной программой нам нужно добавить следующие файлы jar int pathpath.

 commons-vfs.jar commons-logging.jar 

Другая альтернатива с jCIFS вы можете легко указать параметры аутентификации:

 NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("domain", "user", "password"); // Authentication info here, domain can be null try (InputStream is = new SmbFile("smb://192.168.1.120/home/hustler/file.txt", auth).getInputStream()) { // Read from 'is' ... } catch (IOException e) { // Handle IOException } 

Вы также можете попробовать Commons VSF . Проверить UserAuthenticator

Вот код, который я написал, и он работает отлично.

 File f=new File("abc.txt"); //Takes the default path, else, you can specify the required path if(f.exists()) { f.delete(); } f.createNewFile(); FileObject destn = VFS.getManager().resolveFile(f.getAbsolutePath()); UserAuthenticator auth = new StaticUserAuthenticator("", "myusername", "secret_password"); FileSystemOptions opts = new FileSystemOptions(); DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth); FileObject fo = VFS.getManager().resolveFile("\\\\192.168.0.1\\direcory\\to\\GetData\\sourceFile.txt",opts); destn.copyFrom(fo,Selectors.SELECT_SELF); destn.close(); 

Теперь вы можете использовать файл для выполнения необходимых операций. Что-то вроде…

 InputStream is = new FileInputStream(f); 
Interesting Posts
Давайте будем гением компьютера.