`
H小阿飞
  • 浏览: 278584 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

用FileChannel读写文件

 
阅读更多
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();

    }

}

 

0
3
分享到:
评论

相关推荐

    Android 读写文件实例

    - 对于大文件,考虑使用`FileChannel`进行分块读写。 - 使用`try-with-resources`语句自动管理资源关闭。 以上就是Android平台上的文件读写操作的基本方法和注意事项。通过了解这些知识,开发者可以有效地在Android...

    Java读写文件API的用法指南,性能分析与对比。

    - **FileInputStream** 和 **FileOutputStream** 是字节流的子类,专门用于读写文件。它们提供读取和写入文件的基本功能。 4. **字符流**: - **Reader** 和 **Writer** 是字符流的基类,处理字符数据。 - **...

    android 内存 文件读写操作

    5. **文件操作注意事项**:为了保证文件操作的原子性,避免数据丢失,建议使用`FileChannel`的`transferFrom()`和`transferTo()`方法,或者使用`RandomAccessFile`进行大文件的读写。 四、SaveRead文件示例 在给定...

    JAVA读写二进制文件

    对于文件操作,Java提供了 `FileInputStream` 和 `FileOutputStream` 类,它们分别实现了 `InputStream` 和 `OutputStream` 接口,可以直接用于读写文件。例如,要创建一个 `FileOutputStream` 实例来写入文件,...

    1K空间快速读写文件工具类

    "1K空间快速读写文件工具类"的标题暗示了这是一个专为优化小容量文件读写性能而设计的Java工具类。它利用特定的技术手段,在有限的内存资源(如1KB)下,实现了对文件的高速读取和写入,尤其适用于处理较小的文件,...

    java读写文件的集中方式

    除了直接读写外,还可以使用`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实现超大文件的读写功能

    Java 提供了多种方式来读写文件,包括使用 FileInputStream、FileOutputStream、BufferedReader、BufferedWriter 等。 使用 Java NIO 实现超大文件的读写 Java NIO(New I/O)是一种基于缓冲区的 I/O 操作方式,...

    Java 中对文件的读写操作之比较

    #### 示例1:使用FileInputStream和FileOutputStream读写文件 ```java import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class FileIOExample { public ...

    Java IO 基础操作(文件读写和移动)

    `java.nio`包下的`FileChannel`和`Files`类提供了更高级的文件操作,如映射内存到文件(MMap),以及异步文件操作。 例如,使用`Files`类移动文件: ```java Path sourcePath = Paths.get("sourceFile.txt"); Path...

    【IT十八掌徐培成】Java基础第26天-06.FileChannel-RandomAccessFile-CopyFile.zip

    `FileChannel`的主要特性包括读写文件、映射内存到文件、锁定文件区域等。通过`FileInputStream`, `FileOutputStream`, `ServerSocketChannel`, `SocketChannel`等可以获取`FileChannel`实例。例如,我们可以使用`...

    java应用程序,实现对文件的读写功能—大同小异

    对于需要在文件中随机定位读写的场景,可以使用FileChannel和MappedByteBuffer。 7. **NIO(非阻塞I/O)**: Java 1.4引入了NIO,提供了选择器和通道,可以实现非阻塞I/O,适合大量并发连接的情况。 8. **文件...

    有效率的读取大文件(2G)

    `FileChannel`可以从文件中读取数据,并与`ByteBuffer`配合使用,实现分块读取。这种方式减少了CPU上下文切换,提高了效率。 ```java FileChannel channel = FileChannel.open(Paths.get("largefile.txt")); ...

    NIO处理大文件

    通道是数据传输的途径,比如FileChannel用于读写文件,SocketChannel用于网络通信。与传统的流不同,通道是双向的,既可以读也可以写。例如,使用FileChannel可以实现文件的随机读写,这对于处理大文件非常有用。 ...

    Java读写文件方法总结(推荐)

    下面是对Java读写文件的一些常用方法的总结。 **1. 读取文件** Java读取文件通常分为以字节为单位和以字符为单位两种方式。 - **以字节为单位读取文件** 这种方式适用于读取二进制文件,如图片、音频、视频等。...

    JAVA NIO 简单PFT 文件服务

    在实现文件上传服务时,客户端通常将文件内容通过Socket发送到服务器,服务器端的Selector监听连接,接收到数据后,使用FileChannel将数据写入到服务器的文件系统。同时,为了防止数据丢失,可能需要使用Buffer进行...

    文件管理器实现

    为了转换这个URI为实际的file路径,我们需要使用ContentResolver的openFileDescriptor()方法获取ParcelFileDescriptor,再通过getFd()方法获取FileDescriptor,最后使用FileChannel.open(FileDescriptor)创建...

    IO文件读取

    读写文件时,确保正确设置文件编码,避免乱码问题;如果多个进程同时修改同一个文件,可能需要文件锁来协调。 总之,IO文件读取是程序开发的基础技能,理解并熟练掌握不同的读取方式和处理策略,有助于编写高效、...

    java读取大文件

    `RandomAccessFile`类提供了随机访问文件的能力,可以读写文件的任意位置。在这里,它与`FileChannel`一起使用,用于创建`MappedByteBuffer`。 4. **FileChannel**: `FileChannel`是`RandomAccessFile`的一个...

Global site tag (gtag.js) - Google Analytics