package main;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
/**
* Page 502
* @author 阿飞
* 用FileChannel读写文件
*
*/
public class FileChannelTester {
public static void main(String args[])throws IOException{
final int BSIZE=1024;
//向文件中写数据
FileChannel fc = new FileOutputStream("D:\\test.txt").getChannel();
fc.write(ByteBuffer.wrap("你好,".getBytes()));
fc.close();
//向文件末尾添加数据
//先按照“rw”访问模式打开D:\\test.txt文件,如果这个文件还不存在,RandomAccessFile的构造方法会创建该文件
fc = new RandomAccessFile("D:\\test.txt","rw").getChannel(); //RandomAccessFile不支持只写模式,因为把参数设为“w”是非法的
fc.position(fc.size()); //定位到文件末尾
fc.write(ByteBuffer.wrap("朋友!".getBytes()));
fc.close();
//读数据
fc = new FileInputStream("D:\\test.txt").getChannel(); //或者用下面的方法
// fc = new RandomAccessFile("D:\\test.txt","r").getChannel();
ByteBuffer buff = ByteBuffer.allocate(BSIZE);
fc.read(buff);
buff.flip();
Charset cs = Charset.defaultCharset();
System.out.println(cs.decode(buff));
fc.close();
}
}
分享到:
相关推荐
- 对于大文件,考虑使用`FileChannel`进行分块读写。 - 使用`try-with-resources`语句自动管理资源关闭。 以上就是Android平台上的文件读写操作的基本方法和注意事项。通过了解这些知识,开发者可以有效地在Android...
- **FileInputStream** 和 **FileOutputStream** 是字节流的子类,专门用于读写文件。它们提供读取和写入文件的基本功能。 4. **字符流**: - **Reader** 和 **Writer** 是字符流的基类,处理字符数据。 - **...
5. **文件操作注意事项**:为了保证文件操作的原子性,避免数据丢失,建议使用`FileChannel`的`transferFrom()`和`transferTo()`方法,或者使用`RandomAccessFile`进行大文件的读写。 四、SaveRead文件示例 在给定...
对于文件操作,Java提供了 `FileInputStream` 和 `FileOutputStream` 类,它们分别实现了 `InputStream` 和 `OutputStream` 接口,可以直接用于读写文件。例如,要创建一个 `FileOutputStream` 实例来写入文件,...
"1K空间快速读写文件工具类"的标题暗示了这是一个专为优化小容量文件读写性能而设计的Java工具类。它利用特定的技术手段,在有限的内存资源(如1KB)下,实现了对文件的高速读取和写入,尤其适用于处理较小的文件,...
除了直接读写外,还可以使用`Files.copy()`方法轻松完成文件的复制操作: ```java Path source = Paths.get("source.txt"); Path target = Paths.get("target.txt"); Files.copy(source, target, ...
在多线程环境中,为防止多个线程同时对同一文件进行读写,可以使用文件锁。Java中的`FileChannel`提供了锁机制,其他语言也有类似功能。 7. 文件路径 在处理文件时,理解文件路径的格式至关重要。绝对路径从根目录...
在编程领域,文件的读写操作是至关重要的基础技能,特别是在Java这种广泛使用的语言中。本文将详细探讨Java中处理文件的各种方法,旨在帮助初学者掌握文件读写的基本概念和实践技巧。 首先,我们了解文件读取的方法...
Java 提供了多种方式来读写文件,包括使用 FileInputStream、FileOutputStream、BufferedReader、BufferedWriter 等。 使用 Java NIO 实现超大文件的读写 Java NIO(New I/O)是一种基于缓冲区的 I/O 操作方式,...
#### 示例1:使用FileInputStream和FileOutputStream读写文件 ```java import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class FileIOExample { public ...
`java.nio`包下的`FileChannel`和`Files`类提供了更高级的文件操作,如映射内存到文件(MMap),以及异步文件操作。 例如,使用`Files`类移动文件: ```java Path sourcePath = Paths.get("sourceFile.txt"); Path...
`FileChannel`的主要特性包括读写文件、映射内存到文件、锁定文件区域等。通过`FileInputStream`, `FileOutputStream`, `ServerSocketChannel`, `SocketChannel`等可以获取`FileChannel`实例。例如,我们可以使用`...
对于需要在文件中随机定位读写的场景,可以使用FileChannel和MappedByteBuffer。 7. **NIO(非阻塞I/O)**: Java 1.4引入了NIO,提供了选择器和通道,可以实现非阻塞I/O,适合大量并发连接的情况。 8. **文件...
`FileChannel`可以从文件中读取数据,并与`ByteBuffer`配合使用,实现分块读取。这种方式减少了CPU上下文切换,提高了效率。 ```java FileChannel channel = FileChannel.open(Paths.get("largefile.txt")); ...
通道是数据传输的途径,比如FileChannel用于读写文件,SocketChannel用于网络通信。与传统的流不同,通道是双向的,既可以读也可以写。例如,使用FileChannel可以实现文件的随机读写,这对于处理大文件非常有用。 ...
下面是对Java读写文件的一些常用方法的总结。 **1. 读取文件** Java读取文件通常分为以字节为单位和以字符为单位两种方式。 - **以字节为单位读取文件** 这种方式适用于读取二进制文件,如图片、音频、视频等。...
在实现文件上传服务时,客户端通常将文件内容通过Socket发送到服务器,服务器端的Selector监听连接,接收到数据后,使用FileChannel将数据写入到服务器的文件系统。同时,为了防止数据丢失,可能需要使用Buffer进行...
为了转换这个URI为实际的file路径,我们需要使用ContentResolver的openFileDescriptor()方法获取ParcelFileDescriptor,再通过getFd()方法获取FileDescriptor,最后使用FileChannel.open(FileDescriptor)创建...
读写文件时,确保正确设置文件编码,避免乱码问题;如果多个进程同时修改同一个文件,可能需要文件锁来协调。 总之,IO文件读取是程序开发的基础技能,理解并熟练掌握不同的读取方式和处理策略,有助于编写高效、...
`RandomAccessFile`类提供了随机访问文件的能力,可以读写文件的任意位置。在这里,它与`FileChannel`一起使用,用于创建`MappedByteBuffer`。 4. **FileChannel**: `FileChannel`是`RandomAccessFile`的一个...