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流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
随机推荐
- Nagios自定义扩展
原理:监控端通过check_nrpe把要监控的指令发送给被监控端,被监控端在本机执行监控任务,并把执行的结果发送回监控端. 如何扩展Nagios,以实现自定义监控? 借助插件进行的每一次有效的Nagi ...
- dstat 性能监测工具
dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品.dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了.dstat可 ...
- 代码重构:用工厂+策略模式优化过多的if else代码块
最近在工作中优化了一段冗余的if else代码块,感觉对设计模式的理解和运用很有帮助,所以分享出来.鉴于原代码会涉及到公司的隐私,因此就不贴出来了.下面以更加通俗易懂的案例来解析. 假如写一个针对员工 ...
- JavaScript实现AOP(面向切面编程,装饰者模式)
什么是AOP? AOP(面向切面编程)的主要作用是把一些跟核心业务逻辑模块无关的功能抽离出来,这些跟业务逻辑无关的功能通常包括日志统计.安全控制.异常处理等.把这些功能抽离出来之后, 再通过“动态织入 ...
- T分布(T-Distribution)
1.What is the T Distribution? T分布(也叫Student 's T分布)是一组与正态分布曲线几乎相同的分布,只是更短更胖一点.当有小样本时,使用t分布而不是正态分布.样本 ...
- Dubbo 分布式服务框架
要想了解Dubbo是什么,我们不防先了解它有什么用. 使用场景:比如我想开发一个网上商城项目,这个网上商城呢,比较复杂,分为pc端web管理后台,微信端销售公众号,那么我们分成四个项目,pc端网站,微 ...
- 使用JS伪造Post请求
[使用JS伪造Post请求] 提到伪造Post请求,首先想到的是构造HTTP包.但实际上有一种更简单的方法,构造HTML FORM表单,使用js进行提交.如下:
- 格式化java8 LocalDateTime
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.CHINA).format(time1);
- 第十章 泛型程序设计与C++标准模板库 泛型程序设计及STL的结构
- PHP的zip、unzip类详解
1.打开一个ZIP包,用于读取.写入或修改 open(string $filename [, int $flags]) $filename - 文件名 $flags - 打开模式 ZIPARCHIVE ...