【幻化万千戏红尘】qianfengDay19-java基础学习:转换流、对象流、打印流、三大标准(重定向)

课程回顾:

流:数据通信的管道
常用的流类:
1、文件流:File:数据在文件中
 1、FileInputStream
 2、FileOutputStream
 3、FileReader
 4、FileWriter
2、内存流:ByteArray:数据在内存中(数组)
 1、ByteArrayInputStream
 2、ByteArrayOutputStream
3、缓冲流:Buffered:提高读写效率
 1、BufferedInputStream
 2、BufferedOutputStream
 3、BufferedReader
 readLine
 4、BufferedWriter
 newLine

今日内容:
常用的流类:
1、文件流:File:数据在文件中
 1、FileInputStream
 2、FileOutputStream
 3、FileReader
 4、FileWriter
2、内存流:ByteArray:数据在内存中(数组)
 1、ByteArrayInputStream
 2、ByteArrayOutputStream
3、缓冲流:Buffered:提高读写效率
 1、BufferedInputStream
 2、BufferedOutputStream
 3、BufferedReader
 readLine
 4、BufferedWriter
 newLine
4、转换流:用于字节流和字符流之间的转换,可以指定编码格式,处理流,字符流
1、OutputStreamWriter:转换输出字符流
输出字符流----》输出字节流
常用方法:
 write:写出,字符
 flush:刷新
 
2、InputStreamReader:转换输入字符流
输入字节流-----》输入字符流
常用方法:
 read
 skip
5、对象流(Object):可以将各种数据类型的数据写出(序列化)或读取(反序列化)
字节流,处理流
序列化:将对应的类的相关信息和对象的相关内容进行编码的过程,(暂态、静态的不会参与序列化)
反序列化:将序列化的内容进行解析

1、ObjectOutputStream:对象输出字节流
将数据进行序列化保存
常用方法:
writeXXX:写出不同的数据类型的数据
writeObject:写出对象
wirteUTF:写出字符串

2、ObjectInputStream:对象输入字节流
将数据进行反序列化读取
常用方法:
readXXX:读取指定类型的数据
readObject:读取一个对象
readUTF:读取字符串

对象流在使用的时候必须谨记以下两点:
1、对象流只能成对出现(使用对象输出流那么也必须使用对象输入流读取数据)
2、读写顺序必须一致(怎么写的就怎么读取)
writeInt----->readInt

对象流读取到文件末尾引发EOFException异常
当读取的字节数超过文件剩余的字节数时,都会引发EOFException异常

属性不参与序列化的方式:
1、静态的:static
静态的属性不参与序列化
2、暂态的:transient
修饰的属性不参与序列化

当将自定义类进行序列化保存的时候,对应的类必须实现Serializable(序列化接口)

6、打印流(Print):打印各种数据类型的数据,处理流
只有输出,没有输入
1、PrintStream:打印字节流
 常用方法:
 print:输出各种类型数据
 println:输出各种类型数据,并且写出换行符
 write:写出,字节
2、PrintWriter:打印字符流
 常用方法:
 print:输出各种类型数据
 println:输出各种类型数据,并且写出换行符
 write:写出,字符
 
三大标准(重定向):
1、标准输入流(InputSTream)
System.in:默认数据来自键盘输入
如果数据来自键盘的话,就读取不到文件的末尾,因为会阻塞的最后一次的read方法
System.setIn:重新设置标准输入的数据来源
2、标准输出流(PrintStream)
System.out:默认将数据输出到控制台
System.setOut:重新设置标准输出的位置
3、标准错误流(PrintStream)
System.err:默认将数据输出到控制台(字体红色)
System.setErr:重新设置标准错误流的位置

7、数据流:
1、DataInputStream
2、DataOutputStream

8、随机读取文件类:

时间: 2024-09-30 13:17:44

【幻化万千戏红尘】qianfengDay19-java基础学习:转换流、对象流、打印流、三大标准(重定向)的相关文章

【幻化万千戏红尘】qianfengDay10-java基础学习:成员内部类、静态内部类、局部和匿名内部类,设计模式之简单工厂模式

课程回顾: 接口:1.属性:public\static\final2.方法:public\abstract 多态:1.静态化(编译时)多态重载2.动态化(运行时)多态重写对象转型 1.向上转型 2.向下转型 今日内容:内部类:定义在类的内部的类1.成员内部类格式:[修饰符] class 类名 { }内部不能有静态的属性和方法,可以访问外部类的属性,也可以调用外部类的方法 在静态方法中的使用格式:外部类 外对象=new 外部类();成员内部类 对象名=外对象.new 成员内部类(); 2.静态内部

【幻化万千戏红尘】qianfengDay25-HTML基础学习:

Tomcat:服务器 免费 主要运行B/S程序 目录说明: bin:执行文件 lib:第三方的jar包 webapps:发布的项目 网络程序结构: 1.B/S 2.C/S HTML:超文本标记语言 (HyperText Markup Language) 超文本:包含音频.视频.图片等内容 Html主要用来做网页(描述信息),后缀名:.html或.htm HTML的语法规则: 1.不区分大小写 2.由固定标签组成(不允许自定义标签) 3.标签有开始也有结束 4.属性的值都得用双引号 5.标签允许嵌

【幻化万千戏红尘】qianfeng-Android-Day07-AsyncTask基础学习:

异步任务AsyncTask及JSON解析 一.AsyncTask: (一).相关知识回顾: 1.开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的,并且这些操作必须在UI线程中执行. 2.单线程模型中始终要记住两条法则: 1). 不要阻塞UI线程 : 2). 确保只在UI线程中访问Android UI控件. 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread), 主线程主要负责处理与UI相关的事件,如:用户的按键事件

【幻化万千戏红尘】qianfengDay20-java基础学习:数据流、随机读取文件流RandomAccessFile

课程回顾: 流:转换流:字符和字节的转换对象流(Object):序列化,反序列化 打印流(Print):打印各种数据类型的数据 今日内容:数据流(Data):支持将基本数据类型写出,字节流,处理流1.DataOutputStream:数据输出字节流常用方法:writeXXX:写出基本数据类型的数据writeUTF:写出字符串2.DataInputStream:数据输入字节流常用方法:readXXX:读取基本数据类型的数据readUTF:读取字符串 随机读取文件类:拥有写出和读取基本数据类型的方法

【幻化万千戏红尘】qianfeng-Android-Day08-基础学习:ListView

ListView 一.ListView介绍: (一). ListView 概念: ListView是Android中最重要的组件之一,几乎每个Android应用中都会使用ListView.它以垂直列表的方式列出所需的列表项. java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.AdapterView<T extends android.widget.Adapter> ? android.w

Java基础学习笔记【10】打印流、管道流

ByteArrayInputStream和ByteArrayOutputStream内存流,操作基本和文件流其他流差不多,主要使用在程序需要用临时文件,关闭内存流是无效的所以不用关闭 操作流,不管是什么流,最保险的方式,就是最后都close一下 内存流: ByteArrayInputStream.ByteArrayOutputStream.CharArrayReader. CharArrayWriter: 打印流: 1 2 3 4 5 6 PrintStream: print(Object o)

【幻化万千戏红尘】qianfengDay26-Servlet、http协议、URL基础学习:

课程回顾: 线程网络编程SQLiteHTML5 今日内容:ServletHTTP协议XML解析JSON解析正则+注解 网络程序的分类:1.B/S2.C/S 表单的提交方式:1.get:参数信息跟在URL后面传输特点:1.不安全,信息比较敏感2.大小有限制3.中文乱码,URL采用编码格式为:ISO8859-14.效率高2.post:参数信息通过流的形式进行传输特点:1.安全2.大小无限制3.效率低 Servlet:java语言编写的运行在服务器端的程序服务器执行 使用Servlet的步骤:1.创建

【幻化万千戏红尘】qianfeng-JAVA课程结束总结

JAVA知识点:面向对象:面向对象是一种思想编程的指导 封装:面向对象2大核心:1.类:描述信息,抽象格式:[public/abstract/final] class 类名 { 属性 构造方法 方法} 2.对象:具体的实例格式:类名 对象[=new 类名([实际参数列表])]; this的用法1.代指本类对象2.调用构造方法 方法的参数传递:1.基本类型:传输的是数据的本身2.引用类型:传输的是地址 static:静态1.修饰属性2.修饰方法3.修饰代码块4.修饰内部类 包:1.package:

Java IO学习笔记(四)打印流

1.只有输出流才有打印流:PrintWriter和PrintStream分别针对字符和字节,提供了重载的print,Println方法用于多种数据类型的输出.PrintWriter和PrintStream操作不会抛出异常,数据没打印出来也不会抛异常. 2.System.out.print(Object object)调用的是Object实体类的toString()方法. 3.PrintWriter和PrintStream有自动的flush功能,不需要手动调用flush方法.*这里必须强调一点:P