您的位置:首页 > 编程语言 > Java开发

Java流与文件操作(1)

2011-09-02 18:25 302 查看
Java流与文件操作
12.1数据流的基本概念
1.数据源:提供数据的地方;

数据宿:接受数据的地方;

2.流:数据传输过程中的抽象表述为“流”

3.I/O数据流的分类方式:

(1)按数据流动方向分为输入流、输出流。

(2)根据数据流所关联的是数据源还是其他数据流,可分为节点流和处理流.

节点流可以从/向 一个特定的地方读(数据源)/写 数据。

处理流对一个已经存在的流进行封装和连接,通过所封装的流的功能调用实现增强的数据读/写功能。

(3) 按传输数据的“颗粒大小”划分,可分为字符流和字节流

l 字节流以字节为单位进行数据传输,每次传送一个或多个字节;

(可以处理所有类型的数据,如图片、mp3、avi)

l 字符流以字符为单位进行数据传输,每次传送一个或多个字符

(只能处理字符数据)

l 只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用字节流

12.5字符流
Reader类和Writer类用来专门处理字符流。这两个类都是抽象类

一. Reader

1. 主要方法:

Public int read();读取一个字符,堵到末尾返回-1;

Public int read(char[] cbuf);将读到的字符存在指定的数组里

public abstract int read(char[] cbuf,int off,int len);将读到的字符存入数组的指定位置(off)

close();进行资源释放

二. Writer

1. 主要方法

public void write(int c):将一个字符写入到一个流中

public void write(char[]):将数组的字符一次写出

public abstract void write(char[] bcbuf,int off,int len):将数组中下标off开始的len个字符写出。

public void write(String):讲一个字符串写如流中

public abstract void flush():刷新流

public abstreact void close():关闭资源,关闭前会先调用flush,刷新流中的数据去目的地,然后流关闭。

三. FileWriter

1.该类特点:

i. 用于处理文本文件。

ii. 该类中有默认的编码表,

iii. 该类中有临时缓冲

2. 没有特有的方法。只有构造函数

3. 构造函数

public FileWriter(String filename);在指定位置,创建一个文件。(如果该文件已存在,将会被覆盖。)

public FileWriter(String filename,boolean append);当传入的boolean类型的参数值为true时,会在指定文件末尾处进行数据的续写

如:

import java.io.*;

public class Demol {

public static void main(String[] args) throws IOException {

//创建输出流对象

FileWriter fw=new FileWriter("F:/JAVA/lesson/src/lessoneleven/demo.txt");

char ch='中'; char arr[]={'a','b','c'}; String str="program"; fw.write("hello word");fw.write(ch); fw.write(arr); fw.write(str); fw.close();

}

}

四.FileReader

1.作用:用于读取文本文件的流对象。

2构造函数:在读取流对象初始化的时候,必须要指定一个被读取的文件。

FileReader fr=new FileReader("F:/JAVA/lesson/src/lessoneleven/demo.txt");

package lessoneleven;

import java.io.*;

public class demo4 {

public static void main(String[] args) {

FileReader fr=null;

char[] arr=new char[1024];

try{

fr=new FileReader("F:/JAVA/lesson/src/lessoneleven/demo.txt");

int len=fr.read(arr);

while(len!=-1){

System.out.println(new String(arr,0,len));//构造字符串对象输出

len=fr.read(arr);

}

}catch(IOException e){

System.out.println(e.toString());

}finally{

try{

fr.close();

}catch(IOException e){

System.out.println(e.toString());

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: