`
kuaile863
  • 浏览: 115428 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

I/O 缓冲区拷贝文件

阅读更多
  缓冲区的出现提高了对流的操作效率。 
  原理:其实就是将数组进行封装。 
  对应的对象: 
  BufferedWriter: 
    特有方法: 
      newLine():跨平台的换行符。 
  BufferedReader: 
    特有方法: 
      readLine():一次读一行,到行标记时,将行标记之前的字符数据作为字符串返 
          回。当读到末尾时,返回 null。 
 readLine():方法的原理: 
  其实缓冲区中的该方法,用的还是与缓冲区关联的流对象的 read方法。
  只不过,每一次读到一个字符,先不进行具体操作,先进行临时存储。
  当读取到回车标记时,将临时容器中存储的数据一次性返回。 
/**
 * @author 通过缓冲区的形式,对文本文件进行拷贝。
 *
 */
public class lesson {
	
	public static void main(String[] args) throws Exception 
	{ 
		//BufferedReader缓冲区读取文件FileReader文件读取				
	  BufferedReader bufr = new BufferedReader(new FileReader("d:/a.txt")); 
		//BufferedWriter缓冲区写入文件FileWriter文件写入		
	  BufferedWriter bufw = new BufferedWriter(new FileWriter("d:/b.txt")); 
	  //定义字符串
	  String line = null; 
	  //将读取的缓存文件存到字符中
	  while((line=bufr.readLine())!=null) 
	  { 
		//写进文件中
	    bufw.write(line);
	    //写下一行
	    bufw.newLine(); 
	    //清空缓存
	    bufw.flush(); 
	  } 
	   //关闭输入输出缓存
	  bufw.close(); 
	  bufr.close(); 
	} 

 

1
1
分享到:
评论

相关推荐

    内存映射I/O大文件性能测试代码

    内存映射I/O(Memory-Mapped I/O)是一种在操作系统中高效处理大文件的技术,它允许应用程序将文件的内容直接映射到进程的虚拟地址空间,从而实现文件与内存的直接交互,无需通过传统的I/O系统调用。这种方法在处理...

    Linux I/O 原理和 Zero-copy 技术全面揭秘

    2. **I/O缓冲区**:在Linux中,I/O操作通常涉及数据在用户空间和内核空间之间的传递,这需要通过缓冲区完成。当数据从磁盘读取或写入网络时,会先存放在内核缓冲区,然后通过系统调用复制到用户空间或反之。 3. **...

    Linux直接I/O机制介绍

    在这种模式下,操作系统会利用其内核缓冲区来缓存I/O数据,具体过程如下: - **数据读取**:当应用程序尝试读取数据时,数据首先被复制到操作系统内核的缓冲区(页缓存)中,然后再从页缓存复制到应用程序的地址...

    C#缓冲区分析代码

    6. **异步I/O与缓冲区**: C#的async/await语法提供了异步I/O操作,这通常涉及到缓冲区的使用。例如,Stream类的ReadAsync和WriteAsync方法使用缓冲区来实现非阻塞的I/O,提高了程序的响应性。 7. **性能优化**: 当...

    IO-buffer.zip_biggervnh_hit51l_io buffer

    I/O缓冲,顾名思义,就是在一个I/O操作过程中,数据会先存储在一个临时区域,即缓冲区,然后再进行实际的传输。这样做的主要目的是减少数据传输的次数,提高系统性能。因为直接对硬件进行I/O操作通常是非常耗时的,...

    linux IO 基础简介及代码

    2. **磁盘缓冲**:操作系统为了减少磁盘I/O次数,会在内存中设立缓冲区,合并或拆分I/O请求。 3. **零拷贝技术**:如sendfile()系统调用,数据从文件直接传送到网络,避免了用户空间到内核空间再到用户空间的数据...

    android direct IO.rar

    在Android系统中,直接I/O(Direct IO)是一种优化数据传输效率的技术,它允许应用程序绕过操作系统的缓冲区,直接与磁盘设备进行交互。这种技术对于需要高性能、低延迟的场景,如数据库、文件系统或者媒体处理等,...

    提升.IO.zip

    1. **缓冲区缓存**:为了减少磁盘I/O次数,操作系统通常会使用缓冲区缓存来存储最近访问的数据。这样,当程序请求相同数据时,可以从内存中的缓冲区快速获取,而不是慢速的硬盘。 2. **异步I/O**:在同步I/O模式下...

    linux direct io 技术应用

    在传统的I/O操作中,当应用程序请求读写数据时,数据会先被拷贝到内核缓冲区,然后从内核缓冲区传输到硬件设备或从硬件设备读取到内核缓冲区,最后再拷贝到用户空间。这种模式下,数据需要经过多次拷贝,增加了额外...

    输入输出队列-LinuxC

    当一个进程请求读取或写入数据时,数据并不直接从硬件到用户空间或反之,而是先通过内核的I/O缓冲区进行交换,这就是输入输出队列的作用。队列在这里起到了调度和缓存的作用,保证了数据传输的连续性和高效性。 1. ...

    Java I/O 操作及优化详细介绍

    Java I/O 操作是Java应用程序与外部数据交互的基础,涵盖了从磁盘文件读写到网络数据传输的各种场景。本文将深入探讨Java I/O的操作及优化技术。 首先,理解I/O的基本概念至关重要。在Java中,I/O是Input/Output的...

    Linux中直接IO机制的介绍.pdf

    在这种机制中,操作系统维护了一个页缓存(page cache),数据首先被拷贝到内核的缓冲区,然后再拷贝到应用程序的地址空间。这种方法有其优点: 1. 分离了应用程序和物理设备,提高了系统的灵活性。 2. 减少了对...

    网络IO模型 Linux环境下的network IO 高清 目录 书签

    - 允许一个进程同时监视多个文件描述符,一旦其中一个描述符就绪,就可以进行I/O操作。 - epoll是Linux特有的,性能优于select和poll,尤其在大量连接时。 5. **信号驱动I/O**: - 应用程序注册一个信号处理函数...

    快速拷贝工具能够高速的拷贝电脑里的文件

    2. **智能缓冲区管理**:在拷贝过程中,FastCopy会使用较大的缓冲区,减少磁盘的频繁读写,提升速度并降低硬件损耗。 3. **错误恢复机制**:如果在拷贝过程中遇到错误,如文件权限问题或磁盘空间不足,FastCopy可以...

    第四讲 I-O复用与套接口选项.ppt

    例如,`SO_RCVBUF`和`SO_SNDBUF`用于设置接收和发送缓冲区大小,影响网络传输效率;`SO_REUSEADDR`允许在套接字关闭后立即重用其地址,减少了连接建立的等待时间;`SO_BROADCAST`允许套接字发送广播消息,等等。通过...

    零拷贝原理1

    传统的I/O读写方式通常涉及到多次数据拷贝和上下文切换,例如,从磁盘读取数据到内核空间,再从内核空间拷贝到用户空间,接着用户空间的数据再拷贝到内核的socket缓冲区,最后由DMA将数据从内核缓冲区拷贝到协议引擎...

    “光速”拷贝文件 “光速”拷贝文件

    2. **缓存优化**:在内存中建立缓冲区,一次性读取和写入更大容量的数据,减少磁盘I/O次数。 3. **智能预测和预读取**:分析文件结构,预测未来需要读取的数据,提前加载到内存中。 4. **错误恢复机制**:快速检测并...

    线程池拷贝显示树状图.zip

    为了实现进度显示和性能优化,可能需要使用缓冲区(`BufferedInputStream`和`BufferedOutputStream`),并且在拷贝过程中跟踪已拷贝的文件大小和进度。 3. **树状图显示目录结构**: 显示目录结构通常需要遍历文件系统...

    Java无敌 基于网络的文件拷贝

    为了提高效率,可以考虑使用缓冲区(如`BufferedInputStream`)来减少磁盘I/O操作的次数。 3. **数据传输**:在网络传输过程中,可能需要处理数据的分块和错误恢复。可以使用`java.nio`包中的`ByteBuffer`和`...

    qt 多线程实现样例,实现文件的拷贝

    3. **性能优化**:使用缓冲区以提高拷贝速度,或者使用异步I/O(如 `QFile::readAsync()` 和 `QFile::writeAsync()`)来进一步提升效率。 4. **进度报告**:实时更新拷贝进度,以便用户了解操作状态。 本示例项目中...

Global site tag (gtag.js) - Google Analytics