1. Beschreibung
Kanal ist ein Objekt, über das Daten gelesen und geschrieben werden können. Es kann als Stream in IO angezeigt werden. Aber im Vergleich zu Streams gibt es einige Unterschiede:
Der Kanal ist bidirektional und kann gelesen oder geschrieben werden, während Streams unidirektional sind.
Kanal kann asynchron gelesen und geschrieben werden.
Das Lesen und Schreiben von Kanälen muss über das Pufferobjekt erfolgen.
2, Beispiel
wird mithilfe von Kanälen und indirekten Puffern vervollständigt.
FileInputStream fis=null; //引用 FileOutputStream fout=null; FileChannel channel=null; //通道引用 FileChannel outchannel=null; try { fis = new FileInputStream("sb.jpg"); //源文件 fout = new FileOutputStream("bb.jpg"); //目标文件 channel = fis.getChannel(); //获取连接源文件的通道 outchannel = fout.getChannel(); //获取连接目标文件的通道 //指定缓冲区 非直接缓冲区 ByteBuffer buffer=ByteBuffer.allocate(1024); //创建缓冲区 用来传输数据 while(channel.read(buffer)!=-1) //从连接源文件的管道读取数据到缓冲区 { //将缓冲区反转 buffer.flip(); outchannel.write(buffer); //将缓冲区中的数据写入连接到目标文件的管道 buffer.clear(); //"清空"缓冲区 }
Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Java-Kanal. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!