欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java IO 流-字节流-字符流-缓冲流 详细案例 博客分类: Java语言 java流IO 

程序员文章站 2024-03-25 13:00:04
...
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;


// 流 	以 内存 为参照
//  字节流 :	 FileOuputStream	FileInputStream
//  字符流 :	 FileWriter 		FileReader
//	缓冲流:	BufferedWriter		BufferedReader
public 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();
		}
	}
}
相关标签: java IO