IO流概念、FileWriter类及FileReader类详解
创始人
2024-05-22 05:33:22
0

目录

IO流概述和分类

​编辑FileWriter写数据

FileWriter写数据的方法

FileWriter写数据常见问题

 FileReader读数据

IO流概述和分类

  • IO流用来处理设备之间的数据传输

        –文件复制,上传文件和下载文件

  • IO流分类

        –输出流——FileWriter

        –输入流——FileReader

图式详解:

输入流:读取文本内容,用显示器显示出来,利用,利用FileWriter来操作。

输出流:想要更新文本内容,往里边加一些内容,利用FileReader来操作。

FileWriter写数据

  • 构造方法

        –FileWriter(String fileName)

  • 成员方法

        –void write(String str)

        –void flush()——清缓冲

        –void close()——关闭文件

package com.demo01;import java.io.FileWriter;
import java.io.IOException;/*** * @author 无限嚣张(菜菜)* 需求:从文件中写数据* * FileWriter(String fileName):传递一个文件名称* * 输出流写数据步骤:* 		A:创建输出流对象* 		B:调用输出流写数据的方法* 		C:释放资源**/
public class FileWriterDemo {public static void main(String[] args) throws IOException {//创建一个文件对象FileWriter fw = new FileWriter("c:\\zahng.txt");/** 创建输出流对象做了哪些事情:* 		A:调用系统资源创建一个文件* 		B:创建输出流对象* 		C:把输出流对象指向文件*///调用输出流对象的写数据的方法//写一个字符串数组fw.write("IO流你好,HELLO");//数据没有直接写到文件,其实写到了内存缓冲区fw.flush();//释放资源//ͨ通知系统释放和该文件相关的资源//关闭文件输出流fw.close();}
}

如果关闭以后:可以再写吗?执行fw.close()以后,不可以再写内容了。

FileWriter写数据的方法

  • void write(String str):写一个字符串数据
  • void write(String str,int index,int len):写一个字符串中的一部分数据
  • void write(int ch):写一个字符数据
  • void write(char[] chs):写一个字符数组
  • void write(char[] chs,int index,int len):写一个字符数组的一部分数据
package com.demo01;import java.io.FileWriter;
import java.io.IOException;/** void write(String str):写一个字符串数据* void write(String str,int index,int len):写一个字符串中的一部分数据* void write(int ch):写一个字符数据* void write(char[] chs):写一个字符数组* void write(char[] chs,int index,int len):写一个字符数组的一部分数据*/
public class FileWriterDemo3 {public static void main(String[] args) throws IOException {//创建一个文件对象FileWriter fw = new FileWriter("c://zy.txt");//void write(String str):写一个字符串数组fw.write("abcde");fw.write("\r\n");//void write(String str,int index,int len):写一个字符串中的一部分数据fw.write("abcde",0,5);fw.write("\r\n");fw.write("abcde",1,3);fw.write("\r\n");//void write(int ch):void write(int ch):写一个字符数据fw.write('a');fw.write(97);fw.write("\r\n");//void write(char[] chs):写一个字符数组char[] chs = {'a','b','c','d','e'};fw.write(chs);fw.write("\r\n");//void write(char[] chs,int index,int len):写一个字符数组的一部分数据fw.write(chs,0,5);fw.write("\r\n");fw.write(chs,2,3);fw.write("\r\n");//关闭文件fw.close();}
}

思考?????

FileWriter写数据常见问题

 1.如何实现数据的换行?

        windows:\r\n

        linux:\n

        mac:\r

 2.如何实现数据的追加写入?

        FileWriter fw = new FileWriter("c.text");

package com.demo01;import java.io.FileWriter;
import java.io.IOException;public class FileWriterDemo4 {public static void main(String[] args) throws IOException {//FileWriter fw = new FileWriter("c://c.txt"); FileWriter fw = new FileWriter("c://c.txt",true); //表示追加输入,默认是falsefor(int x=0; x<10; x++) {fw.write("hello world"+x);fw.write("\r\n");}//关闭文件fw.close();}
}

 FileReader读数据

  • 构造方法

        –FileReader(String fileName)

  • 成员方法

        –int read()

        –int read(char[] cbuf)

没有参数的读取

package com.demo02;import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;/** 需求:从文件中读数据并显示到控制台* 		读数据——输入流——FileReader* * FileReader:* 		FileReader(String fileName):传递文件名称* * 输入流读文件的步骤* 		A:创建输入流对象* 		B:调用输入流对象读数据的方法* 		C:释放资源* * java.io.FileNotFoundException: fr.txt (系统不指定文件)*/
public class FileReaderDemo {public static void main(String[] args) throws IOException {//创建输入流对象FileReader fr = new FileReader("c://zy.txt");int ch;while ((ch = fr.read()) != -1) {System.out.print((char) ch);}//释放fr.close();}
}

 带参数的数据读取

package com.demo02;import java.io.FileReader;
import java.io.IOException;/** 输入流读数据的步骤* 		A:创建输入流对象* 		B:调用输入流对象的读数据的方法* 		C:释放资源*/
public class FileReaderDemo2 {public static void main(String[] args) throws IOException {// 创建文件数据对象FileReader fr = new FileReader("c://zy.txt");char[] chs = new char[1024]; //创建数组对象int len;//1:fr.read(chs)//2:len=fr.read(chs)//3:len != -1while((len=fr.read(chs))!=-1) {//System.out.println(new String(chs,0,len));System.out.print(new String(chs,0,len));}//释放数据fr.close();}
}

 

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...