操作分布式文件之五:如何读写远程文件
FttpAdapter是通过FttpReadAdapter来直接读取远程文件内容
FttpAdapter fa = new FttpAdapter("fttp://10.232.20.151/home/log/1.log");
FttpReadAdapter reader = fa.getFttpReader();
byte[] bts = reader.readAll();
上面是读取整个文件的内容,如果文件内容很大,每次只读取一部分内容,需要指定FttpReadAdapter的读取范围:
FttpReadAdapter reader = fa.getFttpReader(5,10);
byte[] bts = reader.readAll();
上面表示从第5个字节,往后读10个字节
fa.getFttpReader(5,FileAdapter.m(8)) 从第5个字节往后读8M
fa.getFttpReader(5,FileAdapter.k(512)) 从第5个字节往后读512K
FttpAdapter是通过FttpWriteAdapter来直接写入远程文件内容
FttpAdapter fa = new FttpAdapter("fttp://10.232.20.151/home/log/1.log");
FttpWriteAdapter writer = fa.getFttpWriter();
int r = writer.write("hello world".getBytes());
上面的FttpWriteAdapter没有指定写入范围,默认为追加在文件末尾,如果需要指定范围:
FttpWriteAdapter writer = fa.getFttpWriter(5,10);
int r = writer.write("hello world".getBytes());
上面表示从第5个字节开始,往后写10个字节,写入内容为“hello world”,如果写入内容超出10则截断,不够则填补空位。
除readAll和write外,也提供readAllSafety和writeSafety方法,它们用法一样,但是代表排它读写,主要用于并发读写。
对于数字存储,FttpAdapter也提供整形读写,可以使用getIntFttpReader和getIntFttpWriter,操作跟字节读写类似,只是写入或者返回的是整数,比如:
fa.getIntFttpReader(5,3) 表示从第5个整数开始,往后读3个整数
fa.getIntFttpWriter().writeInt(new int[]{1,2,3}) 表示将一个整数数组写入文件末尾
同样,整形读写也都提供排它读写
FttpWriteReadDemo演示了对远程文件的读写操作
邮箱:Fourinone@yeah.net
企鹅群:241116021
demo源码指南及开发包下载地址:
http://www.skycn.com/soft/68321.html