大家一般在java中都怎么来创建一个通道,并且用来存储一些数据啊~
发布网友
发布时间:2022-10-04 10:04
我来回答
共2个回答
热心网友
时间:2023-10-14 06:09
给你一个简单的文件通道示例
public class ChannelTest{
public static void main(String[] args){
File f=new File("XXXX.txt");//后面要创建一个读通道,所以文件最好事先已存在
FileInputStream fis=new FileInputStream(f);
FileChannel fc=fis.getChannel();//获得文件读入流通道
//现在可以用通道读取文件了
ByteBuffer buf=ByteBuffer.allocate(1024);//定义一个缓冲区,用来存放通道读取的数据
byte[] b=new byte[buf.capacity()];//定义一个数组用来存放缓冲里面的数据,好像不能直接访问缓冲区里面的数据
long n=0;//判断标志
while(true){
n=fc.read(b);
if(n==-1)//-1说明已经到达文件流末尾
break;
//输出读取的数据
buf.flip();
buf.get(b,0,buf.limit());//将缓冲区里的实际数据长度赋给数组
System.out.println(new String(b,0,b.length));
//必须清空缓冲区,否则读不进来
buf.clear();
}
//关闭流
fis.close();
fc.close();
}
}追问太感谢您了~我这些天一直在搞都搞不太好,不知您是否还有一些其他的实例可以发给我参考参考~万分感谢!
追答这个例子已经足够,剩下的自己啄磨。通道是双向的,比如说文件通道只有一个类FileChannel,它不像文件流,有一个写入流,还有一个输出流。通道就一个,只要把相应的流赋给相应的通道就行了
热心网友
时间:2023-10-14 06:09
...你的问题好模糊。。。什么通道? 数据存储到哪儿? 数据库? 本地文件?追问我也不太懂呢,所以可能说的有点模糊,我大概的意思是:有两个服务,希望进行通信,而通信就希望是通过通道,通道里面把第一个服务的数据放到通道里面,然后第二个服务去通道里面读取服务,大概是这个意思吧,我听别人跟我说了一下。希望您能给我好的建议
追答这样应该是socket吧 用socket进行消息 或者文件的传输