黑马程序员-----IO流(1)字符流
2015-08-20 16:44
387 查看
——- android培训、java培训、期待与您交流! ———-
1、 IO流用来处理设备之间的数据传输,JAVA对数据的操作是通过流的方式。
2、 IO流常用基类:
字节流的抽象基类:InputStream/OutputStream
字符流的抽象基类:Reader/Writer
3、字符流(写入)Writer
需求:在硬盘上创建一个文件并写入一些文字数据,并对文件进行续写。
4、 字符流(读取)Reader
文本文件读取方式有两种:
方式一:通过Read()方法进行读取
方式二:通过字符数组进行读取
需求:将E盘下的一个文本文件复制到D盘(分别用这两种方式来读取)
5、 字符流的缓冲区
BufferedWriter : 字符写入流缓冲区
BufferedReader : 字符读取流缓冲区
举例说明:字符写入流缓冲区
举例说明:字符读取流缓冲区
6、 综合实例: 通过缓冲区复制一个.java文件
——- android培训、java培训、期待与您交流! ———-
1、 IO流用来处理设备之间的数据传输,JAVA对数据的操作是通过流的方式。
2、 IO流常用基类:
字节流的抽象基类:InputStream/OutputStream
字符流的抽象基类:Reader/Writer
3、字符流(写入)Writer
需求:在硬盘上创建一个文件并写入一些文字数据,并对文件进行续写。
package com.shan; import java.io.FileWriter; import java.io.IOException; public class Demo8 { public static void main(String[] args) throws IOException{ //创建一个可以往文件中写入字符数据的字符输出流对象 //既然是往一个文件中写入文字数据,那么在创建对象时,就必须明确该文件(用于存储数据的目的地) //如果文件不存在,则会自动创建 //如果文件存在,则会被覆盖 FileWriter fw = new FileWriter("demo.txt" ); //调用Writer对象中的write(string)方法,写入数据 //其实数据写入到临时存储缓冲区中 fw.write( "abcde"); //进行刷新,将数据直接写入到目的地中 fw.flush(); //关闭流,关闭资源,在关闭前会先调用flush刷新缓冲中的数据到目的地。 fw.close(); /*对文件进行续写 FileWriter fw1 = new FileWriter("demo.txt" ,true); fw1.write("\r\n xiexie"); //关闭流,关闭资源,在关闭前会先调用flush刷新缓冲中的数据到目的地。 fw1.close(); */ } } 关闭流,关闭资源,在关闭前会先调用flush刷新缓冲中的数据到目的地。 fw.close(); } }
4、 字符流(读取)Reader
文本文件读取方式有两种:
方式一:通过Read()方法进行读取
方式二:通过字符数组进行读取
需求:将E盘下的一个文本文件复制到D盘(分别用这两种方式来读取)
package com.shan; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /** * 需求:将E盘下的一个文本文件复制到D盘(分别用这两种方式来读取) * @author ling * */ public class Demo9 { public static void main(String[] args) throws IOException{ //copy1(); } /*第一种方式:一个字符一个字符的读取 public static void copy1() throws IOException { FileWriter fw=new FileWriter("ArrayList.txt"); FileReader fr=new FileReader("E:\\ArrayList.java"); int ch=0; while((ch=fr.read())!=-1) { fw.write(ch); fw.flush(); //fw.close(); //fr.close(); } } */ //第二种方式:通过字符数组进行读取 public static void copy2() throws IOException { FileWriter fw=new FileWriter("E:\\1.txt"); FileReader fr=new FileReader("1.java"); char[] buf=new char[1024]; int len=0; while((len=fr.read(buf))!=-1) { fw.write(buf, 0, len); fw.close(); fr.close(); } } }
5、 字符流的缓冲区
BufferedWriter : 字符写入流缓冲区
BufferedReader : 字符读取流缓冲区
举例说明:字符写入流缓冲区
package com.shan; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; /** * 需求:将流对象写入缓冲区 * @param args */ public class Demo10 { public static void main(String[] args) throws IOException { //创建一个字符写入流对象 FileWriter fw=new FileWriter("buf.txt"); //为了提高字符写入流效率,加入缓冲技术,将流对象作为参数传递给缓冲区的构造函数即可 BufferedWriter bufw=new BufferedWriter(fw); for(int x=1;x<5;x++) { bufw.write("abcde"+x); bufw.newLine(); bufw.flush(); } bufw.close(); } }
举例说明:字符读取流缓冲区
package com.shan; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; /** * 需求:通过缓冲区读取流文件 * @param args */ public class Demo11 { public static void main(String[] args) throws IOException { FileReader fr=new FileReader("buf.txt"); BufferedReader bufr=new BufferedReader(fr); String line=null; while((line=bufr.readLine())!=null) { System.out.println(line); } bufr.close(); } }
6、 综合实例: 通过缓冲区复制一个.java文件
package com.shan; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /** * 需求:通过缓冲区复制一个.java文件 * @param args */ public class Demo12 { public static void main(String[] args) { BufferedWriter bufw=null; BufferedReader bufr=null; try { bufr=new BufferedReader(new FileReader("D:\\arraylist2.java")); bufw=new BufferedWriter(new FileWriter("D:\\arraylist2_copy.txt")); String line=null; while((line=bufr.readLine())!=null) { bufw.write(line); bufw.newLine(); } } catch(IOException e) { new RuntimeException("读写失败!"); } finally { try { if(bufr!=null) { bufr.close(); } } catch(IOException e) { new RuntimeException("读取关闭失败!"); } try { if(bufw!=null) { bufw.close(); } } catch(IOException e) { new RuntimeException("写入关闭失败!"); } } } }
——- android培训、java培训、期待与您交流! ———-
相关文章推荐
- 100+个程序员开发必备参考手册(在线及下载) [复制链接]
- 黑马程序员-----集合类
- 黑马程序员-几段重要的小程序
- 黑马程序员——Java基础---基础语法(四)
- 黑马程序员-----String类
- 我爸爸是个程序员
- 黑马程序员——面向对象
- 进职场记(一)--下山
- 黑马程序员-----多进程
- 数据库基础(面试常见题)
- Java常见面试题
- 笔试面试题分享
- 看到一个程序员成长之路 一点点感慨
- 黑马程序员——OC视频学习过程6
- 卡特兰数 Catalan数 ( ACM 数论 组合 )
- 程序员的分级理解
- 面试问题
- java面试题笔记2015-08-20
- 黑马程序员-JAVA基础测试题(6-10)
- 魅族面试题小试