黑马程序员--java学习总结(6)
来源:互联网 发布:java软件设计模式 编辑:程序博客网 时间:2024/04/28 21:59
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
----IO流
流:可以理解为数据的流动,IO流最终都要以对象来体现,对象都存在IO包中。
流的分类:
1.根据输入和输出的不同,分为输入流(读)和输出流(写)。
2.根据处理的数据不同,分为字节流和字符流。
流的操作规律:
1.明确源和目的
数据源:就是需要读取,可以使用两个体系:InputStream,Reader;
数据汇:就是需要写入,可以使用两个体系:OutputsTream,Writer;
2.操作的数据是否是纯文本数据?
如果是:数据源:Reader
数据汇:Writer
如果不是:数据源:InputStream
数据汇: OutputStream
3.虽然确定了一个体系,但是该体系中有太多的对象,到底有哪个?这时就需要明确操作的数据设备。
数据源对应的设备:硬盘(File),内存(数组),键盘(System.in)
数据汇对应的设备:硬盘(File),内存(数组),键盘(System.out)
4.需要提高效率吗?
如果需要就用缓冲进行装饰。
注意事项:
当用FileWrite和FileOutputStream的构造方法关联文件(会自动创建文件)时,如果参数中带的是flase或者是没有boolean的参数时,会将相同路径下原来的同名文件覆盖;如果参数是true,则只会续写(也就是从原始数据的尾部开始写)原文件,而不会覆盖。File中的createNewFile()方法也不会覆盖,如果有同名文件,则不创建,如果没有,则创建。其次,RandomAccessFile raf=new RandomAccessFile("random.txt","rw");当参数为"rw"时表示:当这个文件不存在时,会创建该文件,如果文件已存在,则不会创建,也不会覆盖原文件,只是将数据写在原文件上(修改)。
转换流:
InputStreamReader是字节流通向字符流的桥梁,构造方法中的第一个参数是要读取的源文件,属于InputStream字节流类型,第二个参数可以指定码表。将源文件中的字节数据通过查码表得到字符数据。(其用于操作文件的子类FileReader已经将转换动作封装了,并且使用的编码表是本机默认的编码表)
OutputStreamWriter是字符流通向字节流的桥梁,构造方法中的第一个参数是要写入的目的文件,属于OutputStream字节流类型,第二个参数可以指定码表。将字符数据通过码表写入到字节流目的文件中。(其用于操作文件的子类FileWriter已经将转换动作封装了,并且使用的编码表是本机默认的编码表。)
获取键盘录入:
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
输出到控制台:
BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));
--File类
在调用File类中的isDirectory()和isFile()方法时必须要先调用exists()判断该文件是否存在。
boolean isAbsolute():判断刺抽象路径名是否为绝对路径名(文件不存在也可以判断)。
String[] list():列出指定目录下的当前文件和文件夹的名称。包括隐藏文件。
如果调用list()方法的File对象中封装的是一个文件,那么list方法返回数组为null。如果封装的对象不存在也会返回null。只有封装的对象存在并且是文件夹时,这个方法才有效。
File[] listFiles(FilenameFilter filter):能够获取目录里指定类型的文件。
----递归
递归就是自身调用自身。
比如求斐波那契数列的第n项就是递归的一个体现。(0,1,1,2,3,5,8,13,21,34,55。。。)
什么时候用:
当一个功能被重复使用,而每次使用该功能时参数不确定,都由上次的功能元素结果来确定。
简单的说,就是当功能内部用到该功能,但是传递的参数不确定。这时就可以使用递归。
递归的注意事项:
1.一定要定义递归的条件。
2.递归的次数不宜过多,否则会出现StackOverflowError(栈内存溢出)。
0 0
- 黑马程序员--java学习总结(6)
- 黑马程序员--java学习总结(1)
- 黑马程序员--java学习总结(2)
- 黑马程序员--java学习总结(3)
- 黑马程序员--java学习总结(4)
- 黑马程序员--java学习总结(5)
- 黑马程序员--java学习总结(7)
- 黑马程序员--java学习总结(8)
- 黑马程序员--java学习总结(9)
- 黑马程序员--java学习总结(10)
- 黑马程序员--java学习总结(11)
- 黑马程序员 java泛型学习总结(一)
- 黑马程序员 java泛型学习总结(二)
- 黑马程序员-Java IO的学习总结
- 黑马程序员-Java网络编程学习总结
- 黑马程序员 java继承的学习总结
- 黑马程序员--java学习之io总结
- 黑马程序员--java学习之反射总结
- 黑马程序员--面向对象2(Java)
- windows下mysql忘记root密码后查看或修改密码的方法
- 6、SDWebImage的使用
- 7、iOS pch文件创建及使用
- NSThread,NSOperation,GCD
- 黑马程序员--java学习总结(6)
- Linux openoffice 安装测试
- java,javac命令行编译参数
- 【解决方案】对不起,请将 php.ini 中的 short_open_tag 设置为 On,否则无法继续安装。
- exec函数族
- 基于管道的即时通信(java nio)
- 今天写的Fibonacci Sequence 迭代方法 iterative
- hive 安装
- 物联12:条形码和rfid