asCharBuffer()一次可以输出缓冲区中信息。使用方法为:
ByteBuffer buffer=ByteBuffer.allocate(1024);
System.out.println(buffer.asCharBuffer());
//
这个地方注意:普通缓冲器容纳的是普通字节,假如把它们转换成字符,要在输入他们的时候进行编码,代码如下:
public class BufferToText {
private static final int BSIZE=1024;
public static void main(String[] args) throws Exception{
FileChannel fc=new FileOutputStream("D:\\data2.txt").getChannel();
fc.write(ByteBuffer.wrap("some txtx".getBytes()));
fc.close();
fc=new FileInputStream("D:\\data2.txt").getChannel();
ByteBuffer buffer=ByteBuffer.allocate(BSIZE);
fc.read(buffer);
buffer.flip();
//while(buffer.hasRemaining())
//System.out.print((char)buffer.get());
//注意:这个地方按照上面输出不会出现乱码,但直接转换成字符会出现乱码
System.out.println(buffer.asCharBuffer());
buffer.rewind();//为了返回到数据开始的部分
String encoding=System.getProperty("file.encoding");
System.out.println("decode using "+encoding+":"+Charset.forName(encoding).decode(buffer));
fc=new FileOutputStream("D:\\data2.txt").getChannel();
fc.write(ByteBuffer.wrap("Some text2".getBytes("UTF-16BE")));
fc.close();
fc=new FileInputStream("D:\\data2.txt").getChannel();
buffer.clear();
fc.read(buffer);
buffer.flip();
//在数据读入到缓冲区之前对他进行编码,这样不会出现乱码
System.out.println(buffer.asCharBuffer());
}
}
分享到:
相关推荐
下面是对NIO2基础的介绍,包括文件路径、Path类简介、符号链接等知识点。 文件路径是指文件在文件系统中的位置,文件系统可以是树形结构,每个文件都有唯一的文件路径,用于标识文件的位置。在文件系统中,每个文件...
Java I/O, NIO以及NIO2是Java编程语言中处理输入输出操作的重要API...本书的目标读者是具有一定Java基础的中级到高级开发人员,它将帮助开发者深入了解Java I/O、NIO以及NIO2技术,并且能够在实际开发中运用这些知识。
1. **NIO基础** - **通道(Channels)**:通道类似于流,但它是双向的,可以读也可以写。常见的通道有FileChannel、SocketChannel、ServerSocketChannel等。 - **缓冲区(Buffers)**:NIO的核心组件,用于存储...
在这个压缩包中,包含了“Java_NIO基础视频教程”和“MINA视频教程”,你可以通过观看这些教程,了解和学习NIO和Mina的基本用法。同时,“Netty快速入门视频(52im.net).txt”虽然不是直接与Mina相关的,但Netty也是...
### Pro Java 7 NIO2:深入理解Path类与文件系统操作 #### 一、引言 《Pro Java 7 NIO2》是一本专注于Java 7中的新I/O(NIO.2)特性的书籍,它介绍了如何利用Java 7的新特性来处理文件和网络操作。本书的核心在于...
1. NIO基础:介绍NIO的基本概念,如通道、缓冲区、选择器以及它们之间的交互。 2. 文件操作:讲解如何使用NIO进行文件的读写操作,包括文件通道和MappedByteBuffer的使用。 3. 非阻塞I/O:对比NIO和BIO,解释非阻塞I...
#### 二、NIO 的基础概念 - **缓冲区(Buffer)**:缓冲区是 NIO 中的核心概念之一,用于存储不同类型的数据。Buffer 可以看作是一块内存区域,用来存放从通道读取的数据或准备写入通道的数据。 - **通道(Channel)**...
nio思维导图:适用于有一定编程基础的朋友,想系统学习NIO这块知识的朋友。知识点大体分3块:1:>概念了解(各类IO) 2>NIO的核心(缓存区,通道等) 3>网络IO
1. **NIO基础知识**: - **FileInputStream**:这是Java IO中的类,用于读取文件内容。 - **FileChannel**:NIO中的核心组件,允许通过通道进行高效的数据传输。 - **MappedByteBuffer**:文件映射缓冲区,它允许...
1. **Java NIO基础** - **通道(Channels)**:Java NIO 提供了多种通道,如文件通道、套接字通道等,它们代表不同类型的I/O操作。 - **缓冲区(Buffers)**:数据在通道和应用程序之间传输时会存储在缓冲区中,...
1. **印刷版快速入门指南** - 用于指导安装过程、插线以及基础操作知识。 2. **资源光盘** - 包含安装程序和完整用户指南的PDF版本。 3. **USB线缆** - 安装完成后用于连接计算机。 4. **免费软件光盘(如Xcite+套件...
第2章,介绍在Socket编程过程中一些基础知识,让大家建立起对这块知识内容的一个整体轮廓; 第3章,结合905.4-2014协议的基本内容,动手实现NIO长连接服务端的实现,以及协议内容的设计和实现思路; 第4章,实现长...
根据提供的文件信息,我们可以提取并总结出关于Java NIO(New Input/Output)的重要知识点。 ### Java NIO 概述 Java NIO 是 Java 平台的一个重要特性,首次出现在 Java 1.4 版本中。它为 Java 开发者提供了一套...
- **缓冲区(Buffer)**:缓冲区是Java NIO中数据读写的基础单元。根据数据类型的不同,Java NIO 提供了多种缓冲区: - **ByteBuffer**:用于基本字节数据的缓冲。 - **CharBuffer**:用于字符数据的缓冲。 - **...
1. **NIO基础** - **通道(Channels)**:NIO中的通道类似于流,但它们是双向的,可以读写数据。常见的通道类有FileChannel、SocketChannel和ServerSocketChannel等。 - **缓冲区(Buffers)**:缓冲区是数据的...