黑马程序员----JAVASE之IO流操作【字符流】

原创 2013年12月01日 22:21:52

                                                                -------------- android培训java培训、期待与您交流! ---------------


1.FileWriter和FileReader
当我们处理一些纯文本的数据时,例如txt文件,我们就可以优先考虑字符流操作文件了。

Reader
    |-- InputStreamReader
         |-- FileReader 处理文件的字符读取流对象

Writer
    |-- OutputWriter
        |-- FileWriter  处理文件的字符写入流对象


Reader常用的方法:
     1. int read();  读取一个字符。返回的是读到的那个字符。如果读到流的末尾,返回-1.
      2.int reade(char[]) 
          将读到的字符存入指定的数组中,返回的是读到的字符个数,也就是往数组里装的元素的个数。如果读到流的末尾,返回-1.
     3.close();读取字符其实用的是window系统的功能,就希望使用完毕后,进行资源的释  放。

Writer中的常见的方法:
     1.write(ch): 将一个字符写入到流中。   
     2.write(char[]): 将一个字符数组写入到流中。   
     3.write(String): 将一个字符串写入到流中。  
     4.flush():刷新流,将流中的数据刷新到目的地中,流还存在。   
     5.close():关闭资源:在关闭前会先调用flush(),刷新流中的数据去目的地。然流关闭。

FileWriter:   
     1,用于处理文本文件。   
     2,该类中有默认的编码表,  
     3,该类中有临时缓冲。

FileReader:   
     1,用于读取文本文件的流对象。   
      2,用于关联文本文件。

package cn.itheima.io;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.io.Writer;

public class FileWriterAndReader {
	
	public static void main(String[] args) throws Exception {
		Reader reader = new FileReader("c:\\1.txt");
		Writer writer = new FileWriter("c:\\2.txt");
		
		char[] buffer = new char[1024];
		int len = 0;
		while((len=reader.read(buffer))!=-1){
			writer.write(buffer, 0, len);
			writer.flush();
		}
		
		reader.close();
		writer.close();
	}
	
	

}


2.BufferedWriter和BufferedReader
     毋庸置疑缓冲区的出现提高对流的操作效率,他的原理就是讲数组进行了封装。

对应的对象:
BufferedWriter:特有的方法,newLine();具有跨平台的换行符。
BufferedReader:特有的方法:readLine();一次可以读取一行,当读到末尾时,返回null。

注:缓冲的存在是为了增强流的功能而存在的,所以建立缓冲区对象首先要创建对应的流对象。
package cn.itheima.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;

public class BufferedWriterAndReader {
	public static void main(String[] args) throws Exception {
		
		Reader reader = new FileReader("c:\\1.txt");
		Writer writer = new FileWriter("c:\\3.txt");
		
		BufferedWriter bufferedWriter = new BufferedWriter(writer);
		BufferedReader bufferedReader = new BufferedReader(reader);
		
		String str = null;
		while((str = bufferedReader.readLine())!=null){
			bufferedWriter.write(str);
			bufferedWriter.newLine();
			bufferedWriter.flush();
		}
		
		bufferedReader.close();
		bufferedWriter.close();
		
	}

}

readLine():方法的原理: 
       其实缓冲区中的该方法,用的还是与缓冲区关联的流对象的read方法。  只不过,每一次读到一个字符,先不进行具体操作,先进行临时存储。   当读取到回车标记时,将临时容器中存储的数据一次性返回。


                                   -------------- android培训java培训、期待与您交流! ---------------


相关文章推荐

黑马程序员----【javaSE基础】IO--字符流

------- android培训、java培训、期待与您交流! ---------- 一、 流有输入输出,字符流是说流的输入输出形式是字符。它们是处理文本文件,对字符进行处理。 ...

黑马程序员------学习笔记(4)IO流中字符流操作

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- 实现类继承、封装、多态三个特性。客户去汽车租赁公司租车 有两种车型(轿车和客车),客户选择哪种汽车然后输入要...

黑马程序员——java基础——IO流(1)字符流与字节流基本操作

一、IO流 IO流:即InputOutput的缩写。用于处理设备上数据。 流:可以理解数据的流动,就是一个数据流。IO流最终要以对象来体现,对象都存在IO包中。 1、特点: 1)Java对数据...
  • Huberry
  • Huberry
  • 2014年09月22日 04:20
  • 430

黑马程序员--Java基础学习之IO流之字节流、字符流、读取写入文件、Copy文件、键盘输入输出、流操作的基本规律

一、IO流 字节流抽象类: InputStream 、OutputSteam 字符流抽象类:Reader、Writer 二、写入或者读取文件(未使用缓冲区) 1、写入文件: Fil...

黑马程序员——java基础IO流概述、字符流、字节流、流操作规律

------- android培训、java培训、期待与您交流! ---------- 概述 1、IO流:即InputOutput的缩写。 2、特点:         ...

黑马程序员-Java I/O流(一)-IO流概述、字符流、字节流、流操作规律

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-1. 概述 流:可以理解数据的流动,就是一个数据流。Java中与IO相关的类有很多,都集中在java.io...

黑马程序员——Java基础---IO流(字符流、字节流、转换流、流操作规律)

简述: IO(Input Output) IO流用于处理设备之间的数据传输。(比如硬盘上的文件,内存中驻留的数据)IO流是用于操作数据的,数据的最常见体现形式是:文件。 ...

黑马程序员--IO(一)--概述、字符流、字节流、流操作规律

黑马程序员--IO(一)--概述、字符流、字节流、流操作规律 ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、概述 1、IO流(Input...
  • Ob_ject
  • Ob_ject
  • 2015年11月10日 14:09
  • 224

黑马程序员_Java基础_IO流(字符流缓冲区和字节流相关操作以及相关操作技巧)

------- android培训、java培训、期待与您交流! ---------- 一、IO流(BufferedWriter) 字符流的缓冲区: 缓冲区提高了数据的读写效率,对应的类: Bu...

黑马程序员——Java基础IO(一)——IO流概述、字符流、字节流、流操作规律

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 黑马程序员——Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员----JAVASE之IO流操作【字符流】
举报原因:
原因补充:

(最多只允许输入30个字)