我这边需要远程登陆一个linux服务器读取文件写入本地
所以不能用FILE类,因为File类是读本地的
代码如下
public void copyFile(String ip,String user,String pwd,String readFile,String writeFile){
try{
if(login(ip,user,pwd)){
//打开会话
Session session =conn.openSession();
String shPath = "cat ".concat(readFile);
//运行命令
session.execCommand(shPath);
//获取返回信息
stdOut=new StreamGobbler(session.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdOut));
Writer out = new FileWriter(new File(writeFile));
String line;
while((line = br.readLine()) != null){
//System.out.println(line);
out.write(line.concat("\n"));
}
}catch(...){
...
}
问题是这个是日志文件,有150几兆,用readline()是读一行写一行,效率太低了,读写完成个150兆的文件需要1分多钟
求各位大神指教下有什么更好的办法提高效率么,比如几行几行扫或者几兆几兆扫的
------解决思路----------------------
scp是 linux下的命令啊
你现在实际上也是远程执行了一个cat的命令,改一下,直接执行scp命令不就好了。