2016-10-03 156 views
-1

我在远程系统.txt文件的如:IP = 172.16.20.1 路径是/ etc /配置远程文件读取和写入操作

怎么办,我需要从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())); 

但m到处文件也不例外,当我如果我使用HTTPS

Mi个失去了一些东西该文件file.txt的是/ etc文件夹使用路径以http &越来越javax.net.ssl.SSLHandshakeException (Linux)的

+0

M geeting文件未找到异常 –

+0

获取java.net.ConnectException:连接被拒绝,如果我使用FTP协议 –

回答

0

选中此使用的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; 
} 

}