IO流

声明:本篇博客仅记录各种流的代码,以防止忘记。

字节流

视频、图片、音频、doc等用记事本打开为乱码的基本都是字节流文件;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test {

	public static void main(String[] args) {
		FileInputStream fileInputStream = null;
		FileOutputStream fileOutputStream = null;
		try {
			fileInputStream = new FileInputStream("D:\\黄龄 - 等待.mp3");
			fileOutputStream = new FileOutputStream("D:\\3.mp3");
			byte [] car = new byte[1024];
			int length = 0;
			while((length=fileInputStream.read(car))!=-1) {
				fileOutputStream.write(car,0,length);
			}
			fileOutputStream.flush();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			if(fileInputStream!=null) {
				try {
					fileInputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(fileOutputStream!=null) {
				try {
					fileOutputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

字符流

用记事本打开不会乱码的;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test {

	public static void main(String[] args) {
		FileReader fileReader = null;
		FileWriter fileWriter = null;
		try {
			fileReader = new FileReader("D:\\1.txt");
			fileWriter = new FileWriter("D:\\2.txt");
			char[] car = new char[1024]; 
			int length = 0;
			while((length=fileReader.read(car))!=-1) {
				fileWriter.write(car,0,length);
			}
			fileWriter.flush();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			if(fileReader!=null) {
				try {
					fileReader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(fileWriter!=null) {
				try {
					fileWriter.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

缓冲流

数据在复制过程中将数据放到缓冲区上以方便读取;

字节缓冲流

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test {

	public static void main(String[] args) {
		BufferedInputStream bufferedInputStream = null;
		BufferedOutputStream bufferedOutputStream = null;
		try {
			bufferedInputStream = new BufferedInputStream(new FileInputStream("D:\\黄龄 - 等待.mp3"));
			bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("D:\\3.mp3"));
			byte [] car = new byte[1024];
			int length = 0;
			while((length=bufferedInputStream.read(car))!=-1) {
				bufferedOutputStream.write(car,0,length);
			}
			bufferedOutputStream.flush();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			if(bufferedInputStream!=null) {
				try {
					bufferedInputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(bufferedOutputStream!=null) {
				try {
					bufferedOutputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

字符缓冲流

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test {

	public static void main(String[] args) {
		BufferedReader bufferedReader = null;
		BufferedWriter bufferedWriter = null;
		try {
			bufferedReader = new BufferedReader(new FileReader("D:\\1.txt"));
			bufferedWriter = new BufferedWriter(new FileWriter("D:\\3.txt"));
			char [] car = new char[1024];
			int length = 0;
			while((length=bufferedReader.read(car))!=-1) {
				bufferedWriter.write(car,0,length);
			}
			bufferedWriter.flush();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			if(bufferedReader!=null) {
				try {
					bufferedReader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(bufferedWriter!=null) {
				try {
					bufferedWriter.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

转换流

因为操作字符文件时有可能因为编码不一致造成乱码,字节流向字符流的转换;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Test {

	public static void main(String[] args) {
		InputStreamReader inputStreamReader = null;
		OutputStreamWriter outputStreamWriter = null;
		try {
			inputStreamReader = new InputStreamReader(new FileInputStream("D:\\1.txt"), "UTF-8");
			outputStreamWriter = new OutputStreamWriter(new FileOutputStream("D:\\2.txt"),"UTF-8");
			char [] car = new char[1024];
			int length = 0;
			while((length=inputStreamReader.read(car))!=-1) {
				outputStreamWriter.write(car,0,length);
			}
			outputStreamWriter.flush();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			if(inputStreamReader!=null) {
				try {
					inputStreamReader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(outputStreamWriter!=null) {
				try {
					outputStreamWriter.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

数据流

方便进程中数据存入文件;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test {

	public static void main(String[] args) {
		DataOutputStream dataOutputStream = null;
		DataInputStream dataInputStream = null;
		try {
			dataOutputStream = new DataOutputStream(new FileOutputStream("D:\\data.temp"));
			dataOutputStream.writeDouble(9.9);
			dataOutputStream.writeDouble(1.1);
			dataOutputStream.flush();
			
			dataInputStream = new DataInputStream(new FileInputStream("D:\\data.temp"));
			while(true) {
				Double p = dataInputStream.readDouble();
				System.out.println(p);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			if(dataOutputStream!=null) {
				try {
					dataOutputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(dataInputStream!=null) {
				try {
					dataInputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test {

	public static void main(String[] args) {
		Double price = 9.9;
		DataOutputStream dataOutputStream = null;
		DataInputStream dataInputStream = null;
		try {
			dataOutputStream = new DataOutputStream(new FileOutputStream("D:\\data.temp"));
			dataOutputStream.writeDouble(9.9);
			dataOutputStream.writeUTF("TomAndJerry");;
			dataOutputStream.flush();
			
			dataInputStream = new DataInputStream(new FileInputStream("D:\\data.temp"));
			Double p = dataInputStream.readDouble();
			System.out.println(p);
			String n = dataInputStream.readUTF();
			System.out.println(n);
		
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			if(dataOutputStream!=null) {
				try {
					dataOutputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(dataInputStream!=null) {
				try {
					dataInputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值