Java流与文件操作(1)

 

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());

                                     }

                   }

                            }

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值