Result rs = fa.getFttpReader().tryReadAll()调用tryReadAll会立即返回一个Result,但是不能马上获取到结果值,需要轮循检查它的状态是否就绪
rs.getStatus()有三种状态:
Result.NOTREADY 未就绪
Result.READY 就绪
Result.EXCEPTION 异常轮循直到状态准备就绪:
while(rs.getStatus()==Result.NOTREADY)状态就绪就可以通过getResult()获取到读取结果:
byte[] bts = rs.getResult()可以对一个远程文件的不同部分同改高时并行读写,也可以对多个远程文件同时并行读写,比如:
String fttppath = "fttp://10.232.20.151/home/log/1.log"
FttpAdapter fa0 = new FttpAdapter(fttppath)
FttpAdapter fa1 = new FttpAdapter(fttppath)
FttpAdapter fa2 = new FttpAdapter(fttppath)
Result rs0 = fa0.getFttpReader(0,5).tryReadAll()
Result rs1 = fa1.getFttpReader(5,5).tryReadAll()
Result rs2 = fa2.getFttpReader(10,5).tryReadAll()
上面表示3个同时核早尺并行的读睁念取,分别的从一个文件的0,5,10位置向后读5个字节。
import java.io.BufferedReaderimport java.io.File
import java.io.FileReader
/**
* @author lmq
*
*/
public class RemoteFile {
public static void main(String[] args) throws Exception {
File remoteFile = new File("//192.168.7.146/test/1.txt")// 192.168.7.146是对方机器IP,test是对方那个共享文件夹名字,如果没凳消有共享是访问不到的
//远程文件其实枣森知主要是地址,春歼地址弄对了就和本地文件没什么区别 ,windows里面//或者\\\\开头就表示这个文件是网络路径了其实这个地址就像我们再windows里面,点击开始
//然后点击运行,然后输入 \\192.168.7.146/test/1.txt访问远程文件一样的
BufferedReader br = new BufferedReader(new FileReader(remoteFile))
String str
while ((str = br.readLine()) != null) {
System.out.println(str)
}
br.close()
}
}
希望能帮到你。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)