io流

IO流
java.io包
1.什么是流?
io流就是java中运输数据的一种载体
它能够把数据从一个地方运输到另一个地方

2.流的分类
a 根据流运输数据的方向<以内存为参考物>
输入流
输出流

 b 根据数据传输时转换的类型
           字节流    byte           
           字符流    char  
           
           字符流主要运用于纯文本的传输   

3.流的体系
以上两种流的分类可以互相组合成下面四种
字节输入流 字节输出流 字符输入流 字符输出流

    整个流的体系结构如下
     closeable<可关闭的>(close())          flushable<可刷新的>(flush())
 
inputStream   OutputStream   Reader    Writer
   所有的字节输入流都是 inputStream的子类
   所有的字节输出流都是 OutputStream的子类
   所有的字符输入流都是 Reader的子类
   所有的字符输出流都是 Writer的子类
   以上4个流都实现了closeable接口
   以上2个输出流都实现了flushable接口 

4.我们要学习的流<16>
4个文件流<掌握>
FileInputStream
FileOutputStream
FileReader
FileWriter

FileInputStream fis = new FileInputStream("D:/c.txt");
	byte [] bytes = new byte[1024];
	int temp;
	while((temp=fis.read(bytes))!=-1){
		System.out.print(new String(bytes,0,temp));
	}
	
	fis.close();

/*
* 文件输出流如果指向的文件不存在
* 则会自动创建一个
*/
FileOutputStream fos = new FileOutputStream(“D:/a.txt”);

	String info = "许俊皇是个皇军";
	
	//把数据转成byte数组《String-->数组》
	byte [] bytes = info.getBytes();
	
	//fos.write(bytes);
	fos.write(bytes,0,12);
	
	//刷新  强制写入
	fos.flush();
	
	fos.close();

public static void main(String[] args) {

	FileReader fr=null;
	FileWriter fw=null;
	
	try {
		
		fr=new FileReader("D:\\b.txt");
		fw=new FileWriter("D:\\c.txt");
		
		char [] bytes=new char[100];
		int i;
		while((i=fr.read(bytes))!=-1) {
			
			fw.write(bytes,0,i);
			
		}
		
		fw.flush();
		
	}catch(IOException e){
		
		e.printStackTrace();
		
	}finally {
		
		if(fr!=null) {
			
			try {
				fr.close();
			}catch(IOException e) {
				e.printStackTrace();
			}
		}
		
		if(fw!=null) {
			try {
				fw.close();
			}catch(IOException e) {
				e.printStackTrace();
			}
			
		}
	}
}

public static void main(String[] args) {
FileInputStream file1 = null ;
FileOutputStream file2 = null;
try {

		byte[] bytes = new byte[1024];
		int a;
		while((a=file1.read(bytes))!=-1){
			file2.write(bytes,0,a);
		}
		
		file2.flush();
		
	}catch(IOException e){
		e.printStackTrace();
	}finally {
		if(file1 != null) {
			try {
				file1.close();
			}catch(IOException e){
				e.printStackTrace();
			}
			
		}
		if(file2 != null) {
			try {
				file2.close();
			}catch(IOException e){
				e.printStackTrace();
			}
			
		}
	}
}

4个缓冲流<掌握>
BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter

public static void main(String[] args) throws IOException {
	
	FileInputStream fis = new FileInputStream("D:/b.txt");
	
	InputStreamReader  isr = new InputStreamReader(fis);
	
	BufferedReader br = new BufferedReader(isr);
	
	String temp;
	
	while((temp=br.readLine())!=null){
		System.out.println(temp);
	}
	
	br.close();

}

public static void main(String[] args) throws IOException {

	FileWriter fw = new FileWriter("D:/b.txt");
	
	BufferedWriter bw = new BufferedWriter(fw);
    		
	bw.write("哈哈哈  许俊黄");
	bw.newLine();
	bw.write("哈哈哈  张建兵");
	bw.write("哈哈哈  许俊慌");
	
	bw.flush();		
	bw.close();

}

2个转换流<掌握>
InputStreramReader
OutputSTreamWriter

2个打印流<掌握>
PrintWriter
PrintStream

2个数据流
DataInputStream
DataOutputStream

 序列化与反序列化流

ObjectInputStream
ObjectOutputStream

java.io.File: 表示文件和文件夹类
File不是流 不能直接操作文件

你可能感兴趣的:(javase,io流)