gpt4 book ai didi

java - 在需要用户名和密码的java中读取远程文件

转载 作者:搜寻专家 更新时间:2023-10-31 08:15:30 26 4
gpt4 key购买 nike

我正在尝试用 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 = "Acvsl@jun2013";
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 文件添加到类路径中。

commons-vfs.jar
commons-logging.jar

关于java - 在需要用户名和密码的java中读取远程文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11724576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com