---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ---------------------
流的概念:
当程序需要读取数据的时候,就会开启一个通向数据源的读取流,数据源可以是文件、内存、控制台、网络等,当程序要写入数据是,就会开启一个通向目的地的输出流,流对象就是干这么些事的。
流的分类:
按数据方向分为:输入流:InputStream、Reader
输出流:OutputStream、Writer
按数据类型分:字节流:InputStream、OutputStream
字符流:Reader、Writer
常用的字节流:
常用字符流
字节流和字符流的区别:
- 字节流读取数据的时候,读到一个字节就返回一个字节。字符流则是使用字节流来读到一个或者多个字节(根据选定的或者默认的编码集来确定读多少个)时,先去查编码表,然后将查到的字符返回。
- 字节流可以处理所有数据类型,字符流只能处理字符数据,如文本。
- 可以根据流的类名后缀来清楚的知道一个流属于哪一类,一些特殊的比如RandomAccessFile、Console除外。字节读取流都以InputStream结尾,字节输出流都以OutputStream结尾,同理字符流的读取流都以Reader结尾,输出流都以Writer结尾。
在操作数据时,用的最多的是字节流,因为所有的数据都是用字节的形式存储的,只有数据是纯文本形式的,才考虑用字符流。
常用流的常用方法
字节输入流:InputStream----所有字节输入流的父类,三个基本的read()方法:
- int read() 从流里边读取一个字节,读到数据末尾则返回一,这个一般已经封装于子类读取流的读取方法中,开发人员很少用到。
- int read(byte[] buf) 从流里边读取数据到buf字节数组中,并返回读取的字节个数,如果读取到末尾,则返回-1,
- int read(byte[] buf, int off, int len)从流里边读取数据到字节数组中,并返回读取的字节个数,字节数组的有效存储位置为角标为off到len-1的位置。这个方法貌似可以用来加密数据。
其他方法
- void close()关闭输入流,释放所有与该流关联的系统资源
- int available() 返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。
- long skip(long n) 跳过和丢弃此输入流中数据的
n
个字节。返回跳过的实际字节数。 - boolean makSupported() 测试此输入流是否支持
mark
和reset
方法。 - void mark(int n) 标记当前位置,n表示之后n个字节数可以被重新读取,如果读取超过了n个字节还没有调用reset方法,标记失效
- void reset 将输入流重新定义到最后调用mark方法的位置,但是如果没有标记或者标记失效,则抛出异常。
字节输出流:OutputStream---所有字节输出流的父类,三个基本的write方法
- void write(int n) 将制定的字节写入输出流
- void write(byte[] buf) 将字节数组中的所有字节写入指定输出流
- void write(byte[] buf,int off, int len) 将指定字节数组的从角标off到角标len-1的字节写入输出流
其他方法:
- void close()
- void flush() 输出流特有,因为数据写在缓冲区里,所以在程序中要记得刷新一下,虽然很多输出流子类提供了自动刷新的功能,但是如果忽略了fulsh()方法有时候还是会造成一点小麻烦的。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
相关推荐
《黑马程序员Java面试宝典》是一本...通过《黑马程序员Java面试宝典》的学习,你可以系统地复习和掌握这些知识点,提高自己的面试竞争力。书中的问题和解答将帮助你更好地理解Java编程的本质,提升在面试中的自信心。
通过学习《黑马程序员面试宝典》,开发者不仅可以深入理解Java的核心概念和技术,还能了解企业在招聘时关注的热点问题,从而有针对性地进行复习和准备。这份资料提供的面试真题解析更是能帮助开发者模拟实战,提前...
《黑马程序员JAVA面试宝典2018年5月最新...总的来说,《黑马程序员JAVA面试宝典2018年5月最新版》是一本全面覆盖Java开发各方面的面试准备书籍,它能够帮助Java开发者系统地复习和提升技能,以应对日益激烈的竞争环境。
### 黑马程序员入学Java知识 #### Java概述与基础知识 1. **何为编程?** - 编程是通过特定的计算机语言来编写指令,让计算机执行一系列任务的过程。 2. **Java语言概述,历史、特点** - **概述**:Java是一种...
《2018-2019年黑马最新版Java程序员面试宝典+题库pdf》是一份集合了近年来Java编程领域重点知识和面试常见问题的综合资源。这份资料主要针对初级Java程序员,旨在帮助他们巩固基础知识,掌握面试技巧,以便在求职...
本文将为你提供一份详尽的Java基础知识概述,适合初学者和有经验的开发者作为复习材料。 1. Java基础语法 Java的基础语法是编程的基础,理解和掌握它至关重要。 1.1 注释 注释是程序员为了方便理解和维护代码而...
"黑马学员基础资料大全"可能包含这些领域的详细解答和实例,提供了一个全面学习和复习Java面试知识的资源库。通过深入学习和实践这些知识点,不仅能在面试中脱颖而出,也能在实际工作中提升技术水平。
这份资料由黑马程序员精心编纂,集合了多家知名公司的面试题目,涵盖了广泛且深入的Java知识点。 首先,基础篇中,你需要熟悉Java语言的基础语法,包括但不限于数据类型(基本类型与引用类型)、运算符、流程控制...
通过阅读“黑马程序员入学Java知识—精华总结(下).doc”,你可以系统地复习和掌握这些知识点,为面试做好充分准备。记住,理论知识的掌握需要结合实践,通过编写代码和解决实际问题来加深理解。祝你在Java学习道路上...