#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;
}
}