IO流基础

一、O流的概述和分类
1.概述:
IO流:可以从文件中读取数据,也可以把数据存储到文件中。

常见应用:文件复制(U盘拷贝内容)、上传内容(微信图片、QQ空间图片)、下载文件(迅雷下载)。
2.分类:输入流(从文件中读取数据到Java程序)和输出流(从Java程序中将数据写入文件)
在这里插入图片描述
二、FileWriter类(输出流类,往文件中写数据)

FileWriter fw = new FileWriter("d:\\a.txt");     //创建输出流对象

fw.write("IO流你好")//调用输出流对象的写数据方法,写一个字符串数据

fw.flush();   //数据并没有直接写到内存中,而是写到了内存缓冲区,经过flush()方法进行刷新后即可

fw.close();    //释放资源,通知系统释放和该文件相关的资源

//while(true){}  用于测试释放资源,若不执行close(),此时若程序不结束,则该文件一直被占用,执行close()函数后,则资源释放,文件将不再被占用

创建输出流对象的做了哪些事情:A:调用系统资源创建了一个文件;B:创建输出流对象;C:把输出流对象指向该文件。

路径:相对路径,即相对于当前项目而言的根目录,若创建流对象时不指定;绝对路径,在计算机中的路径。

close()方法与flush()方法的区别:flush()方法只是刷新缓冲区,流对象还可以继续使用;而close()方法是在释放资源前刷新缓冲区,资源释放后,流对象关闭,不可以再用。

FileWriter类写数据的5种方法
1): void write(String str):写一个字符串数据;
2): void write(String str, int index, int len):写一个字符串中的一部分数据(从索引index开始,长度为len);
3): void write(int ch):写一个字符数据,这里写int类型的好处是即可以写char类型的数据,也可以写char类型对应的int型数据,如传递的参数可以是’a’,也可以是97,最后的输出都为a;
4): void write(char[] chs):写一个字符数组数据;
5): void write(char[] chs, int index, int len):写一个字符数组的一部分数据,从索引index开始写,长度为len。

FileWriter类写入时换行和追加写入
1)换行:Java虚拟机中,\n可以实现换行,但是在操作系统中的换行识别符号不一致;
     在Windows系统中:换行符为\r\n
     在Linux系统中:换行符为\n
     在MAC系统中:换行符为\r

for(int i = 0; i < 10; i++){
   
    fw.write("hello"+i);
    fw.write("\r\n");
}

2)追加:FileWriter的构造方法:FileWriter(String filename, Boolean append)
当append为true时,表示追加,为false或者只有filename一个参数,则代表决绝追加。

FileWriter fw = new FileWriter(“c.txt”, true);  //表示追加

三、FileReader类(输入流类,往程序中读取数据)
通过一次读写一个字符
注意:调用读数据方法,每次执行读取一个字符,并且文本中的空格和换行符也能被读取。

FileReader fr = new FileReader("fw.txt");
int ch;

while((ch = fr.read()) != -1){
        //如果读到ch等于-1,则表示读到结尾了,跳出循环
    System.out.print((char)ch);   //不用执行换行打印,ch中也会读到换行符,可以输出对应格式,这里读取的是字
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值