利用缓冲流读取跟写入

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 利用输入流从本地读入一个文件,写入到hello.tex中(输出流),利用缓冲流
 */
public class IoClassDemo_3 {
 
 public static void main(String[] args) {
  File file = new File("d/nihao.txt");
  File saveFile = new File("hello.txt");
  getReadFileToRoot(file,saveFile);
 }
 
 /**
  * @date  2016-11-08
  * @param file
  * @desc  从本地读入一个文件到程序根目录下
  * 由于是文本文件,用字符流
  */
 public static void getReadFileToRoot(File file,File saveFile){
  //创建一个字符输出缓冲流(主要是加速文件的读取)
  BufferedReader br = null;
  //创建一个字符输出缓冲流(加速输出作用)
  BufferedWriter bw = null;
  try {
   //创建一个字符输入流
   FileReader fr = new FileReader(file);
   br = new BufferedReader(fr);
   //创建一个字符输出流
   FileWriter fw = new FileWriter(saveFile);
   bw = new BufferedWriter(fw);
   char[] ch = new char[1024];
   int len ;
   while ((len = br.read(ch))!=-1) {
    //bw.write(br.readLine()); 
    bw.write(ch, 0, len);
    bw.flush();
   }
  }catch (IOException e) {
   e.printStackTrace();
  }finally{
   //关闭流   因为在关闭中,缓冲流属于处理流,而字符流属于节点流,所以在关闭中只要关闭缓冲流,节点流会自动关闭
   if(bw !=null){
    try {
     bw.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
   if(br != null){
    try {
     br.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
 }
}

时间: 2024-08-29 08:12:33

利用缓冲流读取跟写入的相关文章

FileInputStream利用缓冲数组读取数据

package cd.itcast.fileinputstream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class Demo1 { public static void main(String[] args) throws IOException { //目标文件 File fil

第3章 缓冲流介绍和使用

1.1 缓冲流的基本使用1.1.1 案例代码八: package com.itheima_04; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; /* * BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符.数组和字符串的高效写入. * BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取. *

Java第三阶段学习(四、缓冲流)

一.缓冲流: Java中提供了一套缓冲流,它的存在,可提高IO流的读写速度 缓冲流,根据流的分类分为:字节缓冲流与字符缓冲流. 二.字节缓冲流: 字节缓冲流根据流的方向,共有2个: 1.写入数据到流中,字节缓冲输出流 BufferedOutputStream 2. 读取流中的数据,字节缓冲输入流 BufferedInputStream 它们的内部都包含了一个缓冲区,通过缓冲区读写,就可以提高了IO流的读写速度 2.1字节缓冲输出流 BufferedOutputStream类 public cla

Java之缓冲流(字节/字符缓冲流)

概述 缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流: BufferedInputStream , BufferedOutputStream 字符缓冲流: BufferedReader , BufferedWriter 缓冲流的基本原理及好处 是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率. BufferedOutputStream 字节缓冲输出流 java.io.Buff

java的 IO流之缓冲流(转载)

java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装.当对文件或其他目标频繁读写或操作效率低,效能差.这时使用缓冲流能够更高效的读写信息.因为缓冲流先将数据缓存起来,然后一起写入或读取出来.所以说,缓冲流还是很重要的,在IO操作时记得加上缓冲流提升性能. 缓冲流分为字节和字符缓冲流 字节缓冲流为: BufferedInputStream-字节输入缓冲流 BufferedOutputStream-字节输出缓冲流 字符缓冲流为: BufferedReader-字符

通过系统缓冲流类提高I/O操作

Java语言中一般的输入与输出流类,都是采用单字节的读取方法,进行数据I/O操作的.也就是每次只读取或写入一个字节的数据,这种方法显然繁琐而低效.其读取与写入的流程图,如图1所示: 打个比方: 假设在A地有100本图书,需要把这些图书从A地运送到B地. 如果每次从A地只拿一本图书到B地,则需要往返A.B两地100次: 如果每次从A地取10本图书到B地,则只需要10次就可以完成这个任务. 显然,后者的效率要高.这个故事中的"每次拿10本"相当于I/O操作的"缓冲区".

【java的 IO流之缓冲流】

java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装.当对文件或其他目标频繁读写或操作效率低,效能差.这时使用缓冲流能够更高效的读写信息.因为缓冲流先将数据缓存起来,然后一起写入或读取出来.所以说,缓冲流还是很重要的,在IO操作时记得加上缓冲流提升性能. 缓冲流分为字节和字符缓冲流 字节缓冲流为: BufferedInputStream-字节输入缓冲流 BufferedOutputStream-字节输出缓冲流 字符缓冲流为: BufferedReader-字符

IO流----转换流、缓冲流

打开一个文本文件,另存为: Ansi就是系统默认编码(就是gbk) 建一个编码是utf-8的txt文件, 例: import java.io.FileWriter; import java.io.IOException; public class Demo01 { public static void main(String[] args) throws IOException { //确定目的地 FileWriter fw=new FileWriter("E:\\zyx\\java\\utf-

Java IO流之字符缓冲流

字符流: 1.加入字符缓存流,增强读取功能(readLine) 2.更高效的读取数据 BufferedReader 从字符输入流读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取. FileReader:内部使用InputStreamReader,解码过程,byte->char,默认缓存大小为8k BufferReader:默认缓存大小为8k,但可以手动指定缓存大小,把数据读取到缓存中,减少每次转换过程,效率更高 //字符输入缓冲流 private static void charRead