黑马程序员-关于IO字符流基础
2015-06-03 15:30
507 查看
------------------------------Android培训 Java培训 期待与您的交流!---------------------------------
/*字符流的两个基类 Writer Reader 既然IO流用于操作数据的 那么数据的最常见体现形式是:文件 那么演示操作文件FileWriter,后缀是父类名,前缀是该类的操作方法 */ import java.io.*; class IO_701 { public static void main(String args []) throws IOException{ //创建File Writer对象。该对象一被初始化就必须明确被操作的文件。 //而且该文件会被创建到指定目录。如果该文件已存在,将被覆盖。 //其实该步是将数据存储到目的地址; FileWriter fw=new FileWriter("demo.txt"); //此时数据并没有直接写入文件内,而存在于缓存区 fw.write("hello"); //清空fw的缓存数据,写入到文件中。 fw.flush(); fw.close();//关闭此流,关闭前会再一次清空缓存,将不能在写数据 } } /* io异常的处理方式 */ import java.io.*; class IO_801 { public static void main(String[] args) { FileWriter fw=null; //一般在前面创建引用 try{ fw=new FileWriter("f://demo.txt");//与文件相关联 fw.write("hello"); //向文件写入hello fw.flush(); //清存 }catch (IOException e){ System.out.println(e.toString()); }finally{ try{ if(fw!=null) fw.close(); //关闭 }catch(IOException e){ System.out.println("close"+e.toString()); } } } } /* 对已有文件的续写。 */ import java.io.*; class IO_901 { public static void main(String[] args) { FileWriter fw=null; try{ fw=new FileWriter("demo.txt",true); //为true则会在后面写入 //换行在续写,没有\r就不会换行 非跨平台的换行 fw.write("\r\nworld"); fw.flush(); }catch(IOException e){ System.out.println(e.toString()); }finally{ try{ if(fw!=null)//当不等于空时,初始化成功,关闭操作需要close(); fw.close(); }catch(IOException e){ System.out.println(e.toString()); } } } } /* *文本文件的读取方式 * *第一种方式 *单个字符的读取 * * *第二种方式 */ import java.io.*; class IO_1001 { public static void main(String[] args) throws Exception { //创建一个文件读取流对象,和指定的文件相关联 //保证文件是存在的,否则会报FileNotFoundException FileReader fr=new FileReader("demo.txt"); /* char a=(char)fr.read(); char b=(char)fr.read();//会往下读取 System.out.println(a); System.out.println(b); */ //通过循环读取文件的所有字符 int i=0; while((i=fr.read())!=-1){ System.out.println("ch="+(char)i); } fr.close(); } } /* *第二种方式 * *通过字符数组缓存进行读取 * * */ import java.io.*; class IO_1002 { public static void main(String[] args) throws Exception { FileReader fr=new FileReader("demo.txt"); //定义一个字符数组,用于存储读到的字符 //将read(char [])返回时读到字符个数 // /* int [] buf=new int[3]; int num=fr.read(buf);//该read(char [])返回的是读到字符的个数 System.out.println("num"=num+new String(buf,0,num)); fr.close(); */ //字符数组循环读取文件的全部字符 char [] buf =new char [1024]; int s=0; while((s=fr.read(buf))!=-1){ System.out.println("s"+s+" "+new String(buf,0,s)); } fr.close(); } } /* *将D盘的文件复制到F盘 * * */ import java.io.*; class IO_1301 { public static void main(String[] args) { copy(); } public static void copy(){ FileReader fr=null; FileWriter fw=null; try{ fr=new FileReader("F:\\Demo15.java"); //与原来的文件读关联 fw=new FileWriter("G:\\Demo15_copy.txt"); //与复制文本进行写关联 char [] buf=new char[1024]; //创建缓存区字长1024 int len=0; while((len=fr.read(buf))!=-1) //将存在缓存区的长度返回 { // System.out.print(new String(buf,0,changdu)); fw.write(buf,0,len); //写入到新文件中去 } }catch(IOException e){ System.out.println(e.toString()); throw new RuntimeException("复制失败"); //抛出复制失败的异常 }finally{ if(fr!=null){ try{ fr.close(); //关闭两个流的try-catch }catch(IOException e){ System.out.println(e.toString()); } } if(fw!=null){ try{ fw.close(); }catch(IOException e){ System.out.println(e.toString()); } } } } }
相关文章推荐
- 黑马程序员——Java基础---单例设计模式
- 面试形象标准礼仪
- 卓越程序员和优秀程序员有哪些区别?
- 优秀的程序员和一般的程序员差别在哪?
- 黑马程序员——Java练习笔记——反射
- 软件开发实习生面试经历-----阿冬专栏!!!!
- 黑马程序员——Java基础---面向对象
- 黑马程序员——Java基础——选择排序和冒泡排序
- 黑马程序员——抽象类和接口
- 面试精选:链表问题集锦
- 程序员学SEO系列一:SEO引论
- 2015/6/3 杭州--我的体检网
- 一位蜗牛程序员七年工作总结-2014
- 疯狂Java学习笔记(72)-----------大话程序员面试
- 一个Java程序员应该掌握的10项技能
- 黑马程序员---Java 装饰设计模式
- 黑马程序员----Java语言基础2(语句、函数、数组)
- 黑马程序员——Java基础—IO流
- 程序员不是砌砖工人,他们是作家
- 黑马程序员java学习笔记——面向对象的特征封装、继承和多态