java IO 流-字节流-字符流-缓冲流 详细案例
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;// 流 以 内存 为参照// 字节流 : FileOuputStreamFileInputStream// 字符流 : FileWriter FileReader//缓冲流:BufferedWriterBufferedReaderpublic class IO {public static void main(String[] args){fileReader();}//字节流 输出流public static void fileOutputStream(){File f = new File("e:\\text.txt");//指定到支持的文件try{//文件不存在时创建if(f.exists()==false){f.createNewFile();}FileOutputStream fos = new FileOutputStream(f);String str = "今天的天气很闷沉";byte[] b = str.getBytes();fos.write(b);fos.close();}catch(Exception ex){ex.printStackTrace();}}//字符流 输出流public static void fileWriter(){File f = new File("e:\\text.txt");try{if(f.exists()==false){f.createNewFile();}FileWriter fw = new FileWriter(f,true);//true 表示不覆盖文件里面的内容String str = "今天的天气很闷沉";char[] ch = str.toCharArray();fw.write("\r\n");//写入换行fw.write(ch);fw.close();}catch(Exception ex){ex.printStackTrace();}}// 缓冲流 输出流public static void bufferedWriter(){File f = new File("e:\\text.txt");try{if(f.exists()==false){f.createNewFile();}BufferedWriter bw = new BufferedWriter(new FileWriter(f,true));// 以字符流的对象为参数//缓冲流可以直接操作字符bw.write("\r\n");bw.write("天气不是很好!");bw.close();}catch(Exception ex){ex.printStackTrace();}}//字节流 输入流public static void fileInputStream(){File f = new File("e:\\text.txt");try{if(f.exists()==false){f.createNewFile();}FileInputStream fis = new FileInputStream(f);// 字节数组的长度 ,由文件的字节大小byte[] b = new byte[(int)f.length()];fis.read(b);//读入数据String str = new String(b);//以字节数组构建字符串fis.close();System.out.println(str);}catch(Exception ex){ex.printStackTrace();}}//字符流 输入流public static void fileReader(){File f = new File("e:\\text.txt");try{if(!f.exists()){f.createNewFile();}FileReader fr = new FileReader(f);StringBuffer sb = new StringBuffer();char[] ch = new char[1000];// 字符的长度未知int hasRead = 0;while((hasRead=fr.read(ch))>0){sb.append(new String(ch,0,hasRead));}fr.close();System.out.println(sb);}catch(Exception ex){ex.printStackTrace();}}//缓冲刘 输入流public static void bufferedReader(){File f = new File("e:\\text.txt");try{if(!f.exists()){f.createNewFile();}BufferedReader br = new BufferedReader(new FileReader(f));//字符流的对象构造//每次读取文件的一行StringBuffer sb = new StringBuffer();while(br.ready()){//是否有读取内容sb.append(br.readLine());//读取一行sb.append("\r\n");//换行}br.close();System.out.println(sb);}catch(Exception ex){ex.printStackTrace();}}}