`
sunliuser
  • 浏览: 2520 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ReadableByteChannel 复制到WritableByteChannel 通道 demo1

    博客分类:
  • nio
 
阅读更多

 

private static void channelCopy(ReadableByteChannel src,WritableByteChannel dest) throws IOException{

         ByteBuffer buffer=ByteBuffer.allocate(10*1024);

         while(src.read(buffer)!=-1){

         buffer.flip();

         while(buffer.hasRemaining()){

         dest.write(buffer);

         }

         buffer.clear();

         }

}

 

/**

* @param args

* @throws IOException 

*/

public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub

          ReadableByteChannel source=Channels.newChannel(System.in);

          WritableByteChannel dest=Channels.newChannel(System.out);

          ChannelCopy.channelCopy(source, dest);

           source.close();

          dest.close();

}

分享到:
评论

相关推荐

    JAVA NIO 全书 译稿

    这些通道都实现了ReadableByteChannel和WritableByteChannel接口,允许读取和写入字节数据。 **2. 缓冲区(Buffer)** 在Java NIO中,数据主要在缓冲区中进行操作。缓冲区本质上是一个可以容纳特定数据类型的数组。...

    Java NIO.pdf

    - `transferTo(WritableByteChannel target, long position, long count)`:将文件从当前位置复制到目标通道。 - `transferFrom(ReadableByteChannel src, long position, long count)`:将数据从源通道复制到当前...

    JavaNIO.pdf

    Java NIO中提供了多种类型的通道,如ByteChannel、GatheringByteChannel、InterruptibleChannel、ReadableByteChannel、ScatteringByteChannel、WritableByteChannel、DatagramChannel、FileChannel、...

    java nio.doc

    - `transferTo(long position, long count, WritableByteChannel target)`:将字节从此通道的文件传输到给定的可写入字节通道。 - `write(ByteBuffer src)`:将字节序列从给定的缓冲区写入此通道。 - **`...

    Java中channel用法总结

    `ScatteringByteChannel`和`GatheringByteChannel`接口扩展了`ReadableByteChannel`和`WritableByteChannel`,提供了更高效的批量读写操作。使用`allocateDirect()`方法创建的`ByteBuffer`更适合于Scatter/Gather...

    string_byte_sink.rar_The Sink

    这个接口包含了一系列方法,如`writeFrom(ReadableByteChannel)`用于从通道写入,`openStream()`用于打开一个OutputStream进行写入等。开发者可以根据需要选择合适的实现。 2. **StringByteSink实现**:...

    Java多线程下载 超简单、详细的例子

    import java.nio.channels.ReadableByteChannel; import java.nio.channels.WritableByteChannel; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ...

    java下载图片的几种方式,提供源代码

    上述代码利用了Java 8的`ReadableByteChannel`和`Files.copy`方法,简化了文件复制的过程。 4. **使用Jsoup库抓取网页上的图片** 如果图片是在HTML页面中,可以使用Jsoup库解析HTML并提取图片链接。以下是一个...

    java通过url读取文件内容示例

    // 将缓冲区数据复制到字节数组 String line = new String(bytes, "UTF-8"); // 假设内容为UTF-8编码 System.out.println(line); buffer.clear(); // 清空缓冲区,准备下一次读取 } // 关闭通道 rbc.close...

    java平台读写ini配置文件(可读网络配置文件)

    1. **安装ini4j库** 要使用ini4j,首先需要将其添加到项目依赖中。如果你的项目使用Maven,可以在`pom.xml`中添加以下依赖: ```xml <groupId>org.ini4j <artifactId>ini4j <version>0.5.4 ``` 2. **读取...

    java 资源搜索并下载(线程等待和通报)

    创建一个输入流,然后通过`Channels.newChannel()`将其转换为通道,再通过`Files.copy()`方法写入本地文件。在下载过程中,可以设置缓冲区大小以提高效率。 三、多线程 为了加快资源下载速度,我们可以使用多线程。...

    xuggle 采用ByteChannel解码视频

    此外,如果需要将解码后的视频保存到另一个`ByteChannel`或文件,我们可以创建一个`IMediaWriter`,并将其连接到目标输出。`IMediaWriter`同样支持从`ByteChannel`读取,这样就可以实现视频数据的无损转换。 ```...

    url远程请求

    1. 使用`HttpURLConnection`进行远程请求: `HttpURLConnection`是`java.net`包下的一个类,它可以处理HTTP、HTTPS等各种协议的连接。以下是一个简单的GET请求示例: ```java URL url = new URL(...

    利用URL下载

    1. **HTTP请求与响应**:当用户输入一个URL并按下回车键时,浏览器会发送一个HTTP请求到服务器,请求包含请求方法(GET、POST等)、URL、协议版本、头部信息等。服务器处理请求后返回一个HTTP响应,包含状态码(如...

    基于Java实现批量下载网络图片.pdf

    首先,从给定的标题和描述中我们可以得知,这个需求来源于一个项目,需要将大量的微博表情图片下载并命名到本地,具体数量为上千张。通过Java编程,我们可以简化这个过程,避免手动下载和重命名带来的繁琐工作。 ...

    从类库看设计模式

    Adapter模式,用于使不兼容的接口可以一起工作,例如,`java.io.InputStreamReader`和`java.nio.channels.ReadableByteChannel`之间的转换。 另外,MVC(Model-View-Controller)模式虽然不在GOF的23种模式中,但也...

    OkSocketOkSocketOkSocket

    public void onDataAvailable(ByteBuffer byteBuffer, ReadableByteChannel channel, OkSocket okSocket) { try { while (byteBuffer.hasRemaining()) { char c = (char) byteBuffer.get(); // 处理接收到的...

    byte-streams:用于jvm字节表示的Rosetta Stone

    根据库的作者和年龄,它可能使用byte[] , InputStream , ByteBuffer或ReadableByteChannel 。 如果字节表示字符串,则还需要担心String , Reader和CharSequence 。 记住如何在它们之间进行转换是一项不费力的...

    java二叉树源码-scodec-bits:提供用于处理位和字节的不可变数据类型

    源(如java.nio.channels.ReadableByteChannel和java.nio.channels.FileChannel一起使用的方法,它们允许对来自各种源的位和字节进行高效、惰性的访问和操作。 十六进制和二进制字符串字面量是通过所支持的hex和bin...

Global site tag (gtag.js) - Google Analytics