Операция удаленного чтения и записи файлов

#java #file

#java #файл

Вопрос:

У меня есть файл .txt в моей удаленной системе, например: ip = 172.16.20.1 путь /etc/config

как мне подключиться к этому файлу из java

вот мой код.

 String path = "http://172.16.20.1/etc/config/file.txt";

URL url = new URL(path);
URLConnection yc = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader (yc.getInputStream()));
  

но я получаю file not exception, когда я использую path с http и получаю javax.net.ssl.SSLHandshakeException, если я использую https

Я что-то пропустил в этом файле file.txt находится в папке /etc (Linux)

Комментарии:

1. Исключение, что файл не найден

2. получение java.net.ConnectException: соединение отказано, если я использую протокол FTP

Ответ №1:

Проверьте это для чтения файла с удаленного компьютера с помощью commons-vfs, он работает нормально

 public static void readRemoteManifestFile( String ipAddress,String filePath,String username,String password ){

    //filePath="/usr/local/tomcat/webapps/abc/test/NavigationPanel.html";

    try {

        StandardFileSystemManager manager = new StandardFileSystemManager();
        manager.init();

        FileObject remoteFile = manager.resolveFile(createConnectionString(ipAddress, username,password,
                filePath), createDefaultOptions());
        if(!remoteFile.exists()){
            System.out.println( filePath ": no such file" );
        }else{
            Reader      inputStreamReader = new InputStreamReader(  remoteFile.getContent().getInputStream());
            char c;
              int i;
            while((i=inputStreamReader.read())!=-1)
             {
                // int to character
                c=(char)i;            
                // print char
                System.out.println("Character Read: " c);
             }
        }

    } catch (Exception e) {
        System.out.println( "Failed to read for " 
                filePath ": " e);
        System.out.println( "Failed to read for " 
                filePath ": " e.getMessage());

    }


}
public static String createConnectionString(String hostName,
        String username, String password, String remoteFilePath) {
    return "sftp://"   username   ":"   password   "@"   hostName   "/"   remoteFilePath;
}

public static FileSystemOptions createDefaultOptions()
        throws FileSystemException {
    FileSystemOptions opts = new FileSystemOptions();
    SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(
            opts, "no");
    SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, false);
    SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, 10000);
    return opts;
}
  

}