IO流基础

IO概述及分类

 IO流用来处理设备之间的数据传输, Java对数据的操作是通过流的方式,Java用于操作流的类都在IO包中。

 流按流向分为两种:输入流,输出流

IO流:可以把数据存储到文件中,也可以从文件中读取数据。

常见应用:1.文件复制

                   2.上传文件(微信图片,qq空间图片)

                   3.下载文件(迅雷);

读数据是输入流,写数据是输出流。

FileWriter类使用

FileWriter向文件中写数据操作步骤:

      a:使用FileWriter流关联文件

      b:利用FileWriter的写方法数据

      c:利用FileWriter的刷新方法将数据从内存刷到硬盘

      d:利用FileWriter关流方法将释放占用的系统底层资源

FileWriter方法(输出流):

 构造方法:FileWriter(String fileName) 传入一个文件的路径

成员方法:void write(String str) 文件中写str

void flush()  内存中的数据刷新到文件中

void close()  关流释放系统底层资源

相对路径:相对当前项目而言的,在项目的根目录下(a.txt),绝对路径:以盘符开始的路径

 close()和flush()方法的区别

 * flush():刷新缓冲区。流对象还可以继续使用。

 * close():先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。

FileWriter其它写方法:

void write(String str):写一个字符串数据

void write(String str,int index,int len):写一个字符串中的一部分数据

void write(int ch):写一个字符数据,这里写int类型的好处是既可以写char类型的数据,也可以写char对应的int类型的值。'a',97。

void write(char[] chs):写一个字符数组数据

void write(char[] chs,int index,int len):写一个字符数组的一部分数据

FileWriter fw = new FileWriter("b.text");
fw.write("abcd");
fw.write("abcdef",1,3);
char[] ch={'a','s','d','w'};
fw.write(ch);
fw.write(ch,1,2);
fw.flush();
fw.close();

FileWriter写入换行以及向文本末尾追加

  \n可以实现换行,但是windows系统自带的记事本打开并没有换行,这是为什么呢?因为windows识别的换行不是\n,而是\r\n

 * windows:\r\n

 * linux:\n

 * mac:\r

 数据的追加写入:FileWriter(String fileName, boolean append)

FileWriter fw = new FileWriter("c.txt",true); //表示追加写入,默认是false
fw.write("abcd");
fw.append("vfhy");

FileReader类使用(输入流)

FileReader读数据一次读取一个字符

输入流读文件的步骤:

 * A:创建输入流对象

*B:调用输入流对象的读数据方法

 * C:释放资源

package chapter01;
 
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
 
public class IO1 {
    public static void main(String[]args) throws IOException {
        /*FileReader fr=new FileReader( "Io.txt");//创建输入流对象
        //int read():一次读取一个字符
        int ch;
        while((ch=fr.read())!= -1)//一次读取一个字符
            System.out.print((char)ch);
        fr.close();*/
        /*
        FileReader fr=new FileReader("Io.txt");
        char[]ch=new char[5];
        int len;
//        len=fr.read(ch);
//        System.out.println(len);
//        System.out.println(new String(ch));
        while((len=fr.read(ch))!=-1){//一次读取一个字符数组
            System.out.println(new String(ch,0,len));
        }
        fr.close();*/
 
 
/*       //利用FileReader和FileWriter完成文件复制
        
        FileReader fr=new FileReader("DuanDian.java");
        FileWriter fw=new FileWriter("Type.java");
        char[]ch=new char[1024];
        int len;
        while((len=fr.read(ch))!=-1){
            fw.write(ch,0,len);
        }
        fr.close();
        fw.close();*/
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值