黑马程序员——IO流
来源:互联网 发布:ubuntu打开软件 编辑:程序博客网 时间:2024/04/28 21:32
点击打开链接 点击打开链接 点击打开链接 <a href="target=" _xhe_href="target=" blank"="">.Net培训、期待与您交流!">点击打开链接 点击打开链接
IO流
IO流:
(Input、Output)输入输出流。用于处理源和目标的数据传输。
按 流动方向分为:输入流和输出 流;
按数据传输的单位分为:字节流和字符流;
字节流是按字节单位来进行传输,如果传输中文,由于一个中文是由两个字节组成。所以在传输的过程中会出现乱码,所以在处理中文数据的传输更推荐使用字符流,因为他是按照一个字符一个字符来进行传输了,它将每一个字母、汉字、特殊字符都当成是一个字符来传输。这样就避免了乱码出现,当然,乱码的出现还依赖于字符编码。
IO流中有四大抽象流,由着四大抽象流派生出IO流的各种体系。
字符流在操作时会使用到缓冲区,而字节流操作时不会用到缓冲区,简单来说就是
字符流在读写数据时,会把数据先存到一个临时缓冲区中,而字节流是直接存倒文件中
是用字符流是,要在文件看到写入的数据,必须先使用flush命令刷新,不然的话数据存储在缓冲区中还没有存入到文件中,这时候文件中是看不到的,当不在使用字符流时,需要关闭流资源,使用close命令,关闭时系统会自动将缓冲区的数据写到文件中,当关闭流以后,就不能再通过流对数据进行读写操作。
两者相比,肯定使用字节流更加方便,而且在程序中像图片、音频等文件都是采用字节的方式进行存储的,那么肯定字节流比字符流使用更加广泛,但如果想要操作中文字符流更加方便快捷。
字节流 字符流
输入流: InputStream Reader
输出流: OutputStream Writer
由于上述四大流都是抽象流不能实例化,所以必须使用它们的子类
文件流
文件字节输入流:FileInputStream
文件字节输出流:FileOutputStream
文件字符输入流:FileReader
文件字符输出流:FileWriter
内存流
内存输入字节流: ByteArrayIntputStream
内存输出字节流: ByteArrayOutputStream
内存输入字符流: CharArrayInputStream
内存输出字符流: CharArrayOutputStream
转换流:
将字节流转换成字符流 输出 OutputStreamWriter
将字节流转换成字符流输入 InputStreamReader
缓冲流
缓冲流要套接在相应的节点流上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时在前面的流的基础上增加了一些新功能,在流操作的过程中一般优先选用缓冲流。
缓冲字节输入流:BufferedInputStream
缓冲字节输出流:BufferedOutputStream
缓冲字符输入流:BufferedReader
缓冲字符输出流:BufferedWriter
我们可以把缓冲流当做是一个包装流,因为他构造器中要求传入的是一个输入输出流
例:
BufferedOutputStream(OutputStream out){ }//传入OutputStream对象
BufferedWriter里面多了一个newLine()方法,可以写入一个行分隔符
BufferedReader里面多了一个readLine()方法,可以读取一行文本。
打印流
打印流。故名思议就是输出流。他可以将任意类型的数据输出到文件或者是一个输出流中。且永远不会抛出IO异常
字节打印流: PrintStream
字符打印流: PrintWriter
标准输入输出流
public static final PrintStream err: 标准的错误输出流,控制台输出
public static final PrintStream out: 标准的输出流,控制台输出
public static final PrintStream in: 标准的输入流,控制台输入
重定向标准输入输出流(改变标准输入输出流的数据源或目标地)
public static final PrintStream setErr(InputStream in): 重新分配标准输入流
public static final PrintStream setOut(PrintStream out): 重新分配标准输出流
public static final PrintStream setIn(PrintStream out): 重新分配标准错误输出流
scanner
可以使用正则表达式来解析基本类型和字符串的简单文本扫描器
使用方式:
Scanner s = new Scanner(system.in);
s.nextLine();//从控制台获取到数据内容
---------------------- <a target="blank">ASP.Net+Unity开发</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------
- 黑马程序员—io流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员 — IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO流
- 黑马程序员—IO
- 黑马程序员———IO流
- 黑马程序员——IO流
- 黑马程序员——IO流
- 黑马程序员——IO流
- 黑马程序员——IO流
- 黑马程序员——java IO流
- 黑马程序员——IO流
- 黑马程序员——IO流
- LeetCode-Reverse Words in a String
- 编程纠错--help others--计算器--又是忘记消除缓存还有函数定义的问题
- ZOJ 3792 Romantic Value(最小割问题)
- java常见错误
- 三色旗排序
- 黑马程序员——IO流
- BZOJ 2005 & BZOJ 2301
- 9 abstract 和 Virtual 之间的区别
- Head First设计模式C++实现--第二章:观察者(Oserver)模式
- 联网校时
- 浅析python中的类变量和对象变量
- U3D图集制作记录
- 10 ref 和 out 之间的区别
- XML序列化与反序列化