`
kavy
  • 浏览: 891549 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

NIO写数据到文件

 
阅读更多

    /**

     * @param file

     * @param context

     * @throws Exception

     */

    public static void writeAdd(String file, String context) {

        FileChannel fc = null;

        RandomAccessFile raf = null;

        try {

            File f = new File(file);

            raf = new RandomAccessFile(f, "rw");

            fc = raf.getChannel();

            fc.position(fc.size());

 

            fc.write(ByteBuffer.wrap(context.getBytes()));

 

            // 关闭文件通道

            raf.close();

            fc.close();

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            try {

                raf.close();

                fc.close();

            } catch (IOException e) {

                e.printStackTrace();

            }

        }

 

    }

 

    /**

     * @param file

     * @param context

     * @throws Exception

     */

    public static void writeCover(String file, String context) {

        FileOutputStream fos = null;

        FileChannel fc = null;

        try {

            fos = new FileOutputStream(file);

            // 文件通道

            fc = fos.getChannel();

 

            // 缓冲区数据写入到文件中

            fc.write(ByteBuffer.wrap(context.getBytes()), fc.size());

 

            // 关闭文件通道

            fc.close();

            // 关闭文件输出流

            fos.close();

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

 

            try {

                // 关闭文件通道

                fc.close();

                // 关闭文件输出流

                fos.close();

            } catch (IOException e) {

                e.printStackTrace();

            }

 

        }

 

    }

分享到:
评论

相关推荐

    java nio 写文件

    本篇将详细探讨Java NIO在写文件方面的应用。 1. **通道(Channels)** 在Java NIO中,数据的读取和写入都是通过通道(Channel)进行的。通道可以理解为连接到I/O设备的桥梁,例如文件、网络套接字等。要使用NIO写...

    java NIO 写文件

    `buffer.flip()`方法将缓冲区从写模式切换到读模式,这样我们就可以从缓冲区读取数据并写入文件。最后,`channel.write(buffer)`将缓冲区中的数据写入文件,直到缓冲区为空。记得在完成后关闭所有打开的资源。 在...

    java nio 包读取超大数据文件

    ### Java NIO 处理超大数据文件的知识点详解 #### 一、Java NIO简介 Java NIO(New IO)是Java平台上的新输入/输出流API,它提供了与传统IO(即Java IO)不同的数据处理方式。NIO在Java 1.4版本引入,并在后续版本...

    基于nio实现的多文件上传源码

    4. **非阻塞读取**:服务器端使用Selector监听读事件,当有数据可读时,读取ByteBuffer数据并保存到临时文件或直接写入目标位置。 5. **文件合并**:当所有文件块都接收完毕,服务器端根据接收到的文件名信息,将...

    NIO处理大文件

    首先,创建FileChannel,然后分配合适的缓冲区大小,通过通道读取文件到缓冲区,处理完缓冲区内的数据后再写入另一个文件或网络。利用选择器可以同时处理多个文件,实现并行操作,进一步提升效率。 7. 示例代码: ...

    java nio 读文件

    - `buffer.flip()`将缓冲区从写模式切换到读模式,以便可以读取之前写入的数据。 - `buffer.get()`获取并移除缓冲区中的一个字节,将其转换为字符并打印。 - `buffer.clear()`清空缓冲区,以便下次读取。 三、NIO读...

    JAVA NIO 简单PFT 文件服务

    1. **Channel**:在NIO中,数据读写是通过Channel进行的,它像一个管道,可以从一个源头(如文件或网络连接)到目的地(如另一个文件或网络连接)传输数据。例如,FileChannel可以用来读取和写入文件。 2. **Buffer...

    JAVA NIO 按行读取大文件支持 GB级别-修正版

    设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 这样字节的判断,然后 返回行 如果 到达 fbb的结尾 还没有结束,就再通过nio读取一段字节,继续处理。 ...

    NIO复制文件

    2. **ByteBuffer**:`java.nio.ByteBuffer`是NIO中最重要的缓冲区类型,它可以被映射到文件,也可以作为网络I/O的数据容器。在复制文件时,我们用它来存储从源文件读取或写入目标文件的数据。 下面是一个简单的文件...

    java NIO实例

    然后,服务器会在接收到读事件时读取客户端发送的数据,在接收到写事件时向客户端发送数据。 整个过程中,NIO通过非阻塞I/O避免了线程阻塞,提高了系统资源的利用率,尤其在处理大量并发连接时,其优势更为明显。 ...

    java NIO.zip

    通道是NIO中的核心概念之一,它提供了从一个数据源(如文件、套接字)到另一个数据源的数据传输路径。Java NIO支持多种类型的通道,包括文件通道(FileChannel)、套接字通道(SocketChannel)和服务器套接字通道...

    NIO按行读取数据

    在Java NIO(New Input/Output)框架中,虽然提供了高效且灵活的I/O操作方式,但默认并不支持按行读取文件数据。正如描述中提到的,开发者通常需要自定义方法来实现这一功能。上述代码片段展示了如何使用NIO以行作为...

    nio.rar_FastCopyFile.java_NIO_UseFloatBuffer.java_java nio_文件锁

    `FastCopyFile.java`可能会展示如何创建FileChannel,从源文件读取数据到一个ByteBuffer,然后将该缓冲区的数据写入目标文件的FileChannel,以此实现高效的文件复制。 接下来,我们来看`UseFloatBuffer.java`。...

    NIO与零拷贝_javanio_nio和零拷贝_

    - **Sendfile系统调用**:在Linux系统中,sendfile()调用可以从一个文件描述符直接将数据发送到另一个文件描述符,例如从磁盘到网络,避免了CPU参与的数据拷贝。 3. **零拷贝的优势** - **减少CPU负载**:由于...

    Large-File-Processing-master_javanio_java大文件处理_

    相比于传统的IO模型,NIO提供了一种更高效的方式来处理大文件,尤其在读写大量数据时,能够显著提高程序性能。本项目“Large-File-Processing-master_javanio_java大文件处理_”显然专注于通过Java NIO实现大文件...

    文件分割器(IO and NIO 两个版本)

    在这个版本中,文件分割器可能使用了`BufferedReader`或`DataInputStream`来读取源文件,然后使用`FileOutputStream`或`DataOutputStream`将数据写入到分割后的子文件中。IO操作通常是同步的,即在进行I/O操作时,...

    NIO 入门.chm,NIO 入门.chm

    9. **文件锁(File Locking)**:NIO提供了一种锁定文件部分区域的能力,这对于多线程或多进程共享文件时的数据同步非常重要。 NIO的使用虽然相对复杂,但它提供了更高效、灵活的I/O操作方式,尤其适用于处理大量...

    nio学习demo 处理因缓冲区满导致写入失败问题

    4. `ServerWriteFileHandler.java`:服务器端的文件写入处理器,负责将接收到的数据写入文件。在写入过程中,需要检查缓冲区状态,确保写入操作成功。 5. `ResponseContext.java`、`RequestContext.java`:可能代表...

    自己手写nio和netty,不建议下载

    在传统的Java I/O模型中,I/O操作是基于流(Stream)的,数据从一个流到另一个流,且通常都是阻塞的,即一个线程在等待数据读取或写入完成时会被挂起,直到I/O操作完成。这种方式在处理少量连接时效率尚可,但当面对...

    JAVA_IO/NIO(demo,压缩jar文件)

    4. **内存映射文件**:NIO支持内存映射文件,直接将文件映射到内存,提高了大文件读写的性能。 **总结** 这个压缩包的示例代码可能包括了如何使用Java的IO和NIO API进行文件读写,以及如何利用`java.util.jar`包将...

Global site tag (gtag.js) - Google Analytics