天天看点

操作分布式文件之五:如何读写远程文件

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演示了对远程文件的读写操作

邮箱:[email protected]

企鹅群:241116021

demo源码指南及开发包下载地址:

http://www.skycn.com/soft/68321.html

继续阅读