I/O流 基础知识点


I/O流 基础知识点


//输出流(写数据) FileWriter


第一步:创建输出流对象
 * FileWriter fw = new FileWriter("d:\\a.txt");
 * 抛出IOException异常
第二步:写一个字符串数据
 * fw.write("IO流你好");
第三步:刷新内存缓冲区
 * fw.flush();
第四步:释放资源
 * fw.close();




FileWriter其它写方法:
 * void write(String str):写一个字符串数据
 * void write(String str,int index,int len):写一个字符串中的一部分数据,从索引index开始,写入len长度
 * void write(int ch):写一个字符数据,这里写int类型的好处是既可以写char类型的数据,也可以写char对应的int类型的值。'a',97
 * void write(char[] chs):写一个字符数组数据
 * void write(char[] chs,int index,int len):写一个字符数组的一部分数据,从索引index开始,写入len长度




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


文本末尾追加:
 * FileWriter fw = new FileWriter("c.txt",true); //表示追加写入,默认是false


close()和flush()方法的区别:
 * flush():刷新缓冲区。流对象还可以继续使用。
 * close():先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。
 
 
 
 
 
//输入流(读数据) FileReader
 
//1.读数据一次读取一个字符
第一步:创建输出流对象
 * FileReader fr = new FileReader("fr.txt");
第二步:读一个字符数据(返回int整数)
 * int ch = fr.read();
 * 注意:如果读取数据的返回值是 -1 的时候,就说明没有数据了
第三步:int整型强转char
 * System.out.print((char)ch);
第四步:释放资源
 * fw.close();
 //标准代码:
FileReader fr = new FileReader("fr.txt");
int ch;
while((ch=fr.read())!=-1) {
System.out.print((char)ch);
}
fr.close();


 
 
 //2.读数据一次读取一个字符数组
第一步:创建输出流对象
 * FileReader fr = new FileReader("fr.txt");
第二步:创建字符数组
 * char[] chs = new char[1024];
 * 注意:new char[1024];//这里长度是1024及其整数倍,因为字符的单位是1024
第三步:读一个字符数组(返回int整数)
 * int ch = fr.read(chs);
 * 注意:如果读取数据的返回值是 -1 的时候,就说明没有数据了
第四步:字符数组char[]整型强转String(输入的时候不需要加 ln)
 * System.out.print(new String(chs,0,len));
System.out.print(chs,0,len);
 *
第五步:释放资源
 * fw.close();
 //标准代码:
FileReader fr = new FileReader("fr.txt");
char[] chs = new char[1024];
int len;
while((len=fr.read(chs))!=-1) {
System.out.print(new String(chs,0,len));
//System.out.print(chs,0,len);
}
fr.close();



//缓输出冲流(高效写数据) FBufferedWriter
第一步:创建输出缓冲流对象
 * BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));
 * 抛出IOException异常
第二步:写一个字符串数据
 * bw.write("hello");
第三步:刷新内存缓冲区
 * bw.flush()
第四步:释放资源
 * bw.close();




 //缓输入冲流(高效读数据) BufferedReader
 
 //1.读数据一次读取一个字符
创建输入缓冲流对象
BufferedReader br = new BufferedReader(new FileReader("FileWriterDemo.java"));
其他
同 FileReader

 //2.读数据一次读取一个字符数组
创建输入缓冲流对象
BufferedReader br = new BufferedReader(new FileReader("FileWriterDemo.java"));
其他
同 FileReader



//缓冲流的特有方法使用(重点)
第一步:创建输出流对象
 * BufferedReader br = new BufferedReader(new FileReader("br.txt"));
第二步:读一个行字符数据(返回String)
 * String line = br.readLine()
 * 注意:1)不读取换行符; 2)如果读取数据的返回值是 null 的时候,就说明没有数据了。
第三步:输出一行(输入的时候需要加 ln)
 * System.out.println(line);
第四步:释放资源
 * br.close();

缓冲流的特殊功能:
BufferedWriter
 * void newLine():写一个换行符,这个换行符由系统决定。
不同的操作系统newLine()方法使用的换行符不同 windows:\r\n 
linux:\n 
mac:\r


 * BufferedReader
 * String readLine():一次读取一行数据,但是不读取换行符
 
 
//标准代码:
BufferedReader br = new BufferedReader(new FileReader("br.txt"));
String line;
while((line=br.readLine())!=null) {
System.out.println(line);
}
br.close();





//复制文本5种方式 (读写数据):
注意:创建对象、导包等操作略
A:利用基本流一次读写一个字符
//标准代码:
int ch;
while((ch=fr.read())!=-1) {
fw.write(ch);
}
fw.close();
fr.close();


B:利用基本流一次读写一个字符数组
//标准代码:
char[] chs = new char[1024];
int len;
while((len=fr.read(chs))!=-1) {
fw.write(chs,0,len);
}
fw.close();
fr.close();


C:利用缓冲流一次读写一个字符
//标准代码:
int ch;
while((ch=br.read())!=-1) {
bw.write(ch);
}
bw.close();
br.close();


D:利用缓冲流一次读写一个字符数组
//标准代码:
char[] chs = new char[1024];
int len;
while((len=br.read(chs))!=-1) {
bw.write(chs,0,len);
}
bw.close();
br.close();


E:利用缓冲流的特有方法一次读写一个字符串(重点)
//标准代码:
String line;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值