day10(IO流汇总)
字节流 (Reader,Writer)
输入流 FileReader
public class Demo {
	public static void main(String[] args) throws IOException {
		FileReader fr=new FileReader("b.txt");
		int len;
		while((len=fr.read())!=-1){
			System.out.print((char)len);
		}
		fr.close();
	}
}
输出流 FileWriter
public class Demo {
	public static void main(String[] args) throws IOException {
		FileReader fr=new FileReader("b.txt");
		//创建输出流对象
		FileWriter fw=new FileWriter("a.txt");
		char[] ch=new char[1024];
		int len;
		while((len=fr.read(ch))!=-1){//读数据
			//写出数据
			fw.write(ch,0,len);
		}
		//关闭流
		fr.close();
		fw.close();
	}
高效流 BufferedReader BufferedWriter
public class Demo {
	public static void main(String[] args) throws IOException {
		//fileReaderDemo();
		FileReader fr=new FileReader("b.txt");
          //创建高效输入字符流对象
		BufferedReader br=new BufferedReader(fr);
		//创建输出流对象
		FileWriter fw=new FileWriter("a.txt");
		BufferedWriter bw=new BufferedWriter(fw);
		char[] ch=new char[1024];
		String len;
		while((len=br.readLine())!=null){//读数据
			//写出数据
			bw.write(len);
			bw.newLine();
			bw.flush();
		}
		//关闭流
		br.close();
		bw.close();
	}
}
字符流 (InputStream,OutputStream)
输入流 FileInputStream
public class Demo {
	public static void main(String[] args) throws IOException {
		FileInputStream fis=new FileInputStream("a.txt");
			int len;
			while ((len=fis.read())!=-1) {
				System.out.print((char)len);
			}
			fis.close();
	}
}
输出流 FileOutputStream
public class Demo {
	public static void main(String[] args) throws IOException {
		//fileReaderDemo();
		//method01();
		FileInputStream fis=new FileInputStream("b.txt");
		FileOutputStream ios=new FileOutputStream("a.txt");
			int len;
			while ((len=fis.read())!=-1) {
				ios.write(len);
			}
			fis.close();
			ios.close();
	}
}
高效流
public class Demo {
	public static void main(String[] args) throws IOException {
		//fileReaderDemo();
		//method01();
		FileInputStream fis=new FileInputStream("b.txt");
		BufferedInputStream bis=new BufferedInputStream(fis);
		FileOutputStream ios=new FileOutputStream("a.txt");
		BufferedOutputStream bos=new BufferedOutputStream(ios);
			byte[] b=new byte[1024];
			int len;
			while ((len=bis.read(b))!=-1) {
				bos.write(b,0,len);
				bos.flush();
			}
			fis.close();
			ios.close();
	}
}
转换流
输入流 InputStreamReader
输出流 outputStreamWriter
public class Demo {
	public static void main(String[] args) throws IOException {
		//fileReaderDemo();
		//method01();
		FileInputStream fis=new FileInputStream("b.txt");
		InputStreamReader isr=new InputStreamReader(fis);//转化为字符流  转换输入流
		BufferedReader br=new BufferedReader(isr);//包装为高效流
		FileOutputStream ios=new FileOutputStream("a.txt");//转化为字符流  转换输出流
		OutputStreamWriter osw=new OutputStreamWriter(ios);//包装为高效流
		BufferedWriter bw=new BufferedWriter(osw);
			String len;
			while ((len=br.readLine())!=null) {
				bw.write(len);
				bw.newLine();
				bw.flush();
			}
			bw.close();
			br.close();
	}
标准流
输入流
public class Demo {
	public static void main(String[] args) throws IOException {
		//标准输入流
		InputStream in = System.in;
		InputStreamReader fis=new InputStreamReader(in);
		int len;
		while ((len=fis.read())!=-1) {
			System.out.print((char)len);
		}
		fis.close();
	}
}
输出流
public class Demo {
	public static void main(String[] args) throws IOException {
		PrintStream out = System.out;
		InputStreamReader fis=new InputStreamReader(new FileInputStream("a.txt"));
		OutputStreamWriter osw=new OutputStreamWriter(out);
		int len;
		while((len=fis.read())!=-1){
			osw.write(len);//输出到控制台
		}
		fis.close();
		osw.close();
	}
}
输出流 (不能写出)
输入流 PrintWriter(父类为Writer)
		PrintWriter pw=new PrintWriter("c.txt");
		pw.println("hello");
		pw.println("world");//将内容写入c.txt文件中   自带刷新功能
		pw.close();
对象流 (序列化)
输出流(将对象写入到文件中,这个对象必须序列化才能写入到文件中 否则会报错)
输入流 ()
public class ObjectTest {
	public static void main(String[] args) throws IOException, Exception {
		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
				"d.txt"));
		ArrayList<Student> array = new ArrayList<Student>();
		Student s1 = new Student("赵云", 15);
		Student s2 = new Student("张飞", 15);
		array.add(s1);
		array.add(s2);
		oos.writeObject(array);//序列化过程
		oos.close();
		ObjectInputStream ois = new ObjectInputStream(new FileInputStream(//反序列化
				"d.txt"));
		ArrayList<Student> arrays = (ArrayList<Student>) ois.readObject();
		for (Student student : arrays) {
			System.out.println(student);
		}
	}
}
public class Student implements Serializable {
	/**
	 *
	 */
	private static final long serialVersionUID = -3919560601713535195L;
       // serialVersionUID 用来标识类的唯一性  它是根据类的内容计算出来的  如果写入和读出的类的id不一致 则会报错
	String name;
	int age;
	String sex;
	public Student(String name,int age){
		this.name=name;
		this.age=age;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + "]";
	}
}
错误异常
java.io.InvalidClassException
local class incompatible: 类不相容
stream classdesc serialVersionUID = -3919560601713535195, local class serialVersionUID = 5350889806824666248
解决方案:
给类进行唯一标识
让类自动生成 UID
day10(IO流汇总)的更多相关文章
- Java IO流操作汇总: inputStream 和 outputStream【转】
		我们在进行Android java 开发的时候,经常会遇到各种IO流操作.IO流操作一般分为两类:字符流和字节流.以“Reader”结尾都是字符流,操作的都是字符型的数据:以“Stream”结尾的都是 ... 
- Java基础17:Java IO流总结
		更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ... 
- 01 语言基础+高级:1-8 File类与IO流_day10【缓冲流、转换流、序列化流】
		day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据到文件 能够明确字符缓冲流的作用和基本用法 能 ... 
- 383 day10缓冲流、转换流、序列化流
		day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 [ ] 能够使用字节缓冲流读取数据到程序 [ ] 能够使用字节缓冲流写出数据到文件 [ ] 能够明确字符缓 ... 
- Java IO流处理
		字节流是由字节组成的;字符流是由字符组成的Java里字符由两个字节组成. 1字符=2字节JAVA中的字节流是采用ASCII编码的,字符流是采用好似UTF编码,支持中文的 Java IO流处理 面试题汇 ... 
- Java基础之IO流
		很长时间都没有更新了,最近在补充JavaSE的一些细节部分 关于IO流的一些总结 首先要介绍的是File类,File类用于对文件和目录的一些操作 1.创建文件CreateNewFile() 2.对文件 ... 
- Java中IO流,输入输出流概述与总结
		总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ... 
- Java:IO流与文件基础
		Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ... 
- java IO流详解
		流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ... 
随机推荐
- Nginx打开目录浏览功能(autoindex)以及常见问题解决方案
			Nginx默认是不允许列出整个目录的.如需此功能,打开nginx.conf文件,在location server 或 http段中加入autoindex on;另外两个参数最好也加上去: autoin ... 
- div 自动全屏高度
			最近做一个页面,需要一个div自动铺满全屏,但是高度总是难以搞定.查资料为:需要从html body到div 需要 设置 高度属性 为100% 
- 第六章 图(d)深度优先搜索
- Oracle数据库迁移的几种方式
			面试: 一.exp/imp逻辑备份与恢复: 二.Storage存储迁移: 将数据文件.控制文件.日志文件.spfile挂到新机器上,然后在新机器上启动数据库. 三.利用data guard迁移: 四. ... 
- 在Linux下配置jdk的环境变量
			jdk下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 在根目录新建s ... 
- reduction
			reduction - 必应词典 美[rɪ'dʌkʃən]英[rɪ'dʌkʃ(ə)n] n.还原:降低:减少:缩小 网络缩减:减量:减小 变形复数:reductions: 
- PHP资源列表(转)
			一个PHP资源列表,内容包括:库.框架.模板.安全.代码分析.日志.第三方库.配置工具.Web 工具.书籍.电子书.经典博文等等. 初始翻译信息来自:<推荐!国外程序员整理的 PHP 资源大全& ... 
- error: In function ‘void* opencv_showimg(void*)’:
			今天这个问题折磨了我一下午,终于知道是为什么了,心酸历程.....赶紧来记录一下 错误: /home/wj/workspace/Loitor_VI_Sensor_SDK_V1./SDK/src/cam ... 
- JTemplate学习(四)
			注释.自定方法.模板嵌套子模板.循环输出不同class <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "htt ... 
- Vue.js (Frontend & Backend)尝试前后端分离
			前言 前端用什么框架都可以,这里选择小巧的vuejs. 要实现的功能很简单:1.登录功能,成功将服务器返回的token存在本地2.使用带token的header访问服务器的一个资源 本次实验环境: & ... 
