`
lylegend13
  • 浏览: 82786 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

NIO的使用(RandomAccessFile、Charset)

 
阅读更多

 

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;

public class test5 {
	public static void main(String[] args) {
		RandomAccessFile in = null;
		RandomAccessFile out = null;

		try {
			in = new RandomAccessFile("C:\\Users\\liuyuan\\Desktop\\ant.txt",
					"r");
			out = new RandomAccessFile("C:\\Users\\liuyuan\\Desktop\\copy.txt",
					"rw");

			FileChannel fci = in.getChannel();
			FileChannel fco = out.getChannel();

			MappedByteBuffer mbb = fci.map(FileChannel.MapMode.READ_ONLY, 0, in
					.length());

			Charset latin = Charset.forName("ISO-8859-1");

			CharsetDecoder decoder = latin.newDecoder();
			CharsetEncoder encoder = latin.newEncoder();

			CharBuffer cb = decoder.decode(mbb);
			ByteBuffer bb = encoder.encode(cb);

			fco.write(bb);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (null != in) {
				try {
					in.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (null != out) {
				try {
					out.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

	}
}
分享到:
评论

相关推荐

    nio.rar_Java识别_java nio

    Java NIO没有内置的自动字符集检测功能,但我们可以使用第三方库,如Apache Tika或Java的`CharsetDetector`(在`com.sun.nio.charset`包中,但不是标准API的一部分,因此可能在某些环境中不可用)。 以下是一个简单...

    Java IO, NIO and NIO.2(Apress,2015)

    Next, you'll learn about NIO's buffer, channel, selector, regular expression, charset, and formatter APIs. Finally, you'll discover NIO.2's offerings in terms of an improved file system interface, ...

    RandomAccessFile向文件中写入中文

    import java.nio.charset.StandardCharsets; public class WriteChineseExample { public static void main(String[] args) { try (RandomAccessFile raf = new RandomAccessFile("test.txt", "rw")) { String ...

    Java I-O NIO and NIO2

    在学习和使用这本书之后,读者将掌握如何使用Java的各种I/O API来构建具有高效数据访问能力的应用程序,这对于当今云计算和大数据流处理需求尤为重要。本书的目标读者是具有一定Java基础的中级到高级开发人员,它将...

    Java NIO教程文档

    1. **基于通道(Channel)和缓冲区(Buffer)的操作**:与标准 IO 基于字节流和字符流的操作不同,NIO 使用 Channel 和 Buffer 进行数据传输。 2. **非阻塞 IO**:NIO 支持非阻塞模式,这意味着线程可以在等待 IO 操作的...

    java大文件读取-乔乐共享

    import java.nio.charset.StandardCharsets; public class LargeMappedFiles { static int length = 0x8FFFFFF; // 128Mb public static void main(String[] args) throws Exception { MappedByteBuffer out = ...

    批量移除文件的BOM格式

    import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class RemoveBOM { public static void main(String[] args) { String ...

    java IO操作 (读写、追加、删除、移动、复制) 源码集合.pdf

    例如,`FileReader` 和 `FileWriter` 默认使用平台的默认编码,可以通过传递 `Charset` 实例指定其他编码。 8. **NIO(New Input/Output)**: - Java NIO 提供了与传统 IO 不同的模型,它使用通道(Channels)和...

    JavaIO底层是如何工作的?Java开发Java经验技巧

    为了提高性能,应尽量减少不必要的I/O操作,合理使用缓冲,避免频繁的小规模读写,考虑使用NIO等高性能技术。 通过深入理解这些Java IO的基本原理和实践技巧,开发者能够编写出高效、健壮的I/O处理代码,从而提升...

    新东方Java流教程

    流的概述 流的分类 InputStream/OutputStream Reader/Writer ...RandomAccessFile的用法 Zip格式文件的压缩/解压 GZip格式文件的压缩/解压 Jar格式文件的压缩/解压 NIO概述 Buffer的用法 Channel Charset 文件锁

    Java中用内存映射处理大文件的实现代码

    import java.nio.charset.StandardCharsets; public class MemoryMappedFileExample { public static void main(String[] args) { try { RandomAccessFile randomAccessFile = new RandomAccessFile("/path/to/...

    疯狂JAVA讲义

    学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...

    Java.I.O.2nd.Edition

    -字符编码的理解,如ASCII、ISO-8859-1、UTF-8等,以及Charset类的使用。 7. **文件通道和NIO**: - 新型I/O(New I/O,NIO):Java 1.4引入的非阻塞I/O模型,包括FileChannel、Selector和Pipe等组件,提高了并发...

    Java基础精品课20-IO.zip

    7. **随机访问文件**:`RandomAccessFile` 类允许在文件中进行随机读写,而不是顺序读写。 8. **字符编码与解码**:Java中的`Charset`类和相关类处理字符编码,如UTF-8、GBK等。 9. **管道流**:`PipedInputStream...

    Dbpool,fileupload,mysql驱动

    Java的IO库非常强大,包括了流(Stream)、缓冲区(Buffer)、字符集(Charset)、文件(File)和随机访问文件(RandomAccessFile)等类。NIO(New IO)是Java 1.4引入的一个新模块,提供非阻塞I/O操作,适用于高并发环境,如...

    java_IO操作

    - **随机读取**:通过`RandomAccessFile`类,可以随机访问文件的任意位置进行读写。 2. **写入文件内容**: - **按字节写入**:使用`FileOutputStream`,通过`write()`方法将字节写入文件。 - **按字符写入**:...

    使用Java制作一个简单的记事本

    7. **文件编码**: 使用`Charset.forName`获取系统默认的文件编码,这里获取的是`file.encoding`系统属性的值。然后创建`CharsetEncoder`和`CharsetDecoder`实例,用于在内存文本与磁盘文件之间转换字符。 8. **文件...

    IBM-ETP-java培训10.Java IO.ppt

    10. **随机访问文件**:RandomAccessFile类提供对文件的随机访问能力,可以读写文件的任意位置。 11. **对象流与序列化**:Serializable接口用于标记一个类的对象可以被序列化。ObjectInputStream和...

    java基础知识 io

    14. **字符编码**:Java默认使用UTF-8编码,但可以使用`Charset`类处理不同的字符编码。 15. **异常处理**:在进行IO操作时,可能出现各种异常,如`FileNotFoundException`、`IOException`等,需要进行适当的异常...

Global site tag (gtag.js) - Google Analytics