标签:
/* 对于IO输入输出流有两大类: 1,字节流(一般用的比较多) 2,字符流(指针对文字(包括中英文等各国语言文字)),字符流与字节流的区别之处就是字符流对象中融合了编码方式,即文字以哪种方式编码,以避免出现乱码。 常用的四个抽象基类: 字节流:InputStream、OutputStream 字符流:Reader、Writer 这四个基类的子类都是以这四个基类的名字作为后缀的,所以比较容易识别子类。 既然IO流是用于操作数据的,那么数据的最常见体现形式是:文件 本例以操作文件为主来演示。 需求:在硬盘上,创建文件并写入文字数据。 */ import java.io.*; class FileWriterDemo { public static void main(String[] args) throws IOException { /*创建一个FileWriter对象,该对象一旦初始化就必须要明确被操作的文件。 而且该文件会被创建到指定目录下。如果该目录中已有同名文件,则原始文件将被覆盖。 其实该步就是明确数据要存放的目的地。 */ FileWriter fw=new FileWriter("D:\\myfile\\111.txt"); /* 调用write方法将文字写到流中 */ fw.write("Hello World\n"); /* 刷新流对象中的缓冲中的数据。 将数据刷到目的地。 */ fw.flush(); fw.write("hdgbjshfjsdv,chvjsdhc"); /* 关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。 将数据刷到目的地中。 close()和flush()的区别:close刷新后,会关闭流;而flush刷新后,流可以继续使用。 */ fw.close(); } }
import java.io.*; class FileWriterDemo1 { public static void main(String[] args) { writeFile(); readFile(); } public static void writeFile() { FileWriter fw=null; try { fw=new FileWriter("D:\\myfile\\MyCode\\1.txt",true);//true代表如果文件已经存在,那么在此文件后续写而不覆盖原来的文件。 fw.write("\r\ndemetria"); } catch (IOException e) { System.out.println(e.toString()); } finally { try { if(fw!=null)//这个一定要判断是否为空,然后再关闭文件 fw.close(); } catch (IOException e) { System.out.println(e.toString()); } } } public static void readFile() { FileReader fr=null; int ch=0; try { fr=new FileReader("D:/myfile/MyCode/1.txt"); while((ch=fr.read())!=-1) { sop("ch="+(char)ch); } /*while(true) { ch=fr.read(); if(ch==-1) break; sop((char)ch); }*/ } catch (IOException e) { sop(e.toString()); } finally { try { if(fr!=null) fr.close(); } catch (IOException e) { sop(e.toString()); } } } public static void sop(Object obj) { System.out.println(obj); } }
/* 第二种方法通过字符数组来获取 将读取到的每个字符存在定义好的字符数组中。 */ import java.io.*; class FileWriterDemo2 { public static void main(String[] args) { writefile(); readfile(); } public static void writefile() { FileWriter fw=null; try { fw=new FileWriter("D:/myfile/MyCode/2.txt",true); fw.write("HelloWorld!"); } catch (IOException e) { sop(e.toString()); } finally { try { if(fw!=null) fw.close(); } catch (IOException e) { sop(e.toString()); } } } public static void readfile() { FileReader fr=null; try { fr=new FileReader("D:\\myfile\\MyCode\\2.txt"); char[] ch=new char[1024]; int num=0; while((num=fr.read(ch))!=-1) { sop(new String(ch,0,num)); } } catch (IOException e) { sop(e.toString()); } finally { try { if(fr!=null) fr.close(); } catch (IOException e) { sop(e.toString()); } } } public static void sop(Object obj) { System.out.println(obj); } }
/* 将C盘一个文本文件复制到D盘。 复制的原理: 其实就是将C盘下的文件数据存储到D盘的文件中。 步骤: 1,在D盘新建一个文件。用于存储C盘文件中的数据; 2,定义读取流和C盘文件关联; 3,通过不断地读写完成数据存储。 */ import java.io.*; class FileWriterDemo4 { public static void main(String[] args) throws IOException { FileWriter fw=null; FileReader fr=null; try { fw=new FileWriter("D:/myfile/MyCode/newdemo.txt");//定义写字符流对象 fr=new FileReader("C:/test/old.txt"); int num=0; char[] ch=new char[1024]; int count=0; while((num=fr.read(ch))!=-1) { fw.write(new String(ch,0,num)); count++; } System.out.println("count:"+count);//count的值为1说明循环只走了一次。 } catch (IOException e) { throw new RuntimeException("读写失败"); } finally { if(fr!=null) try { fr.close(); } catch (IOException e) { } if(fw!=null) try { fw.close(); } catch (IOException e) { } } } }
标签:
原文地址:http://blog.csdn.net/iemdm1110/article/details/51372153