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();
}
}
}
}
}
分享到:
相关推荐
Java NIO没有内置的自动字符集检测功能,但我们可以使用第三方库,如Apache Tika或Java的`CharsetDetector`(在`com.sun.nio.charset`包中,但不是标准API的一部分,因此可能在某些环境中不可用)。 以下是一个简单...
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, ...
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 API来构建具有高效数据访问能力的应用程序,这对于当今云计算和大数据流处理需求尤为重要。本书的目标读者是具有一定Java基础的中级到高级开发人员,它将...
1. **基于通道(Channel)和缓冲区(Buffer)的操作**:与标准 IO 基于字节流和字符流的操作不同,NIO 使用 Channel 和 Buffer 进行数据传输。 2. **非阻塞 IO**:NIO 支持非阻塞模式,这意味着线程可以在等待 IO 操作的...
import java.nio.charset.StandardCharsets; public class LargeMappedFiles { static int length = 0x8FFFFFF; // 128Mb public static void main(String[] args) throws Exception { MappedByteBuffer out = ...
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 ...
例如,`FileReader` 和 `FileWriter` 默认使用平台的默认编码,可以通过传递 `Charset` 实例指定其他编码。 8. **NIO(New Input/Output)**: - Java NIO 提供了与传统 IO 不同的模型,它使用通道(Channels)和...
为了提高性能,应尽量减少不必要的I/O操作,合理使用缓冲,避免频繁的小规模读写,考虑使用NIO等高性能技术。 通过深入理解这些Java IO的基本原理和实践技巧,开发者能够编写出高效、健壮的I/O处理代码,从而提升...
流的概述 流的分类 InputStream/OutputStream Reader/Writer ...RandomAccessFile的用法 Zip格式文件的压缩/解压 GZip格式文件的压缩/解压 Jar格式文件的压缩/解压 NIO概述 Buffer的用法 Channel Charset 文件锁
import java.nio.charset.StandardCharsets; public class MemoryMappedFileExample { public static void main(String[] args) { try { RandomAccessFile randomAccessFile = new RandomAccessFile("/path/to/...
学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...
-字符编码的理解,如ASCII、ISO-8859-1、UTF-8等,以及Charset类的使用。 7. **文件通道和NIO**: - 新型I/O(New I/O,NIO):Java 1.4引入的非阻塞I/O模型,包括FileChannel、Selector和Pipe等组件,提高了并发...
7. **随机访问文件**:`RandomAccessFile` 类允许在文件中进行随机读写,而不是顺序读写。 8. **字符编码与解码**:Java中的`Charset`类和相关类处理字符编码,如UTF-8、GBK等。 9. **管道流**:`PipedInputStream...
Java的IO库非常强大,包括了流(Stream)、缓冲区(Buffer)、字符集(Charset)、文件(File)和随机访问文件(RandomAccessFile)等类。NIO(New IO)是Java 1.4引入的一个新模块,提供非阻塞I/O操作,适用于高并发环境,如...
- **随机读取**:通过`RandomAccessFile`类,可以随机访问文件的任意位置进行读写。 2. **写入文件内容**: - **按字节写入**:使用`FileOutputStream`,通过`write()`方法将字节写入文件。 - **按字符写入**:...
7. **文件编码**: 使用`Charset.forName`获取系统默认的文件编码,这里获取的是`file.encoding`系统属性的值。然后创建`CharsetEncoder`和`CharsetDecoder`实例,用于在内存文本与磁盘文件之间转换字符。 8. **文件...
10. **随机访问文件**:RandomAccessFile类提供对文件的随机访问能力,可以读写文件的任意位置。 11. **对象流与序列化**:Serializable接口用于标记一个类的对象可以被序列化。ObjectInputStream和...
14. **字符编码**:Java默认使用UTF-8编码,但可以使用`Charset`类处理不同的字符编码。 15. **异常处理**:在进行IO操作时,可能出现各种异常,如`FileNotFoundException`、`IOException`等,需要进行适当的异常...