由于流在java中的重要性,和本身自己在流这方面存在混乱的原因。我将会对流进行一次很清晰的总结和记录下来我的学习过程。第一次开始了发表博客,我很高兴可以讲自己的理解和大家进行分享。有不好和不对的地方请给我指出。你的鼓励就是我的动力。
注:在下面的分类由于发表后格式有更改,显的有点乱。需要慢慢看了。
File类(流的输入输出必须使用到的文件类)
新建文件:(构造方法)
创建文件可以根据相对路径和相对绝对路径
相对路径
File file = new File("a.txt");
绝对路径:
File file=new File("D://a.txt");
File类中的常用方法
File.exists() //文件或者目录是否存在
File.isFile() //是否是文件
File.isDirectory(); //是否是目录
File.getName(); //取文件或者目录的名字
File.getPath(); //取文件或者目录的路径
File.getAbsolutePath(); //取文件绝对路径
File.lastModified(); //最后修改日期
File.length(); //文件或者目录的子节大小
File.createNewFile(); //创建新文件
File.canRead() //测试文件是否可以读取
File.canWrite() //测试文件是否可以写入
还有很多的方法,这里就不一一介绍。可以从JDK中可以查询的到。实际上,在开发过程中,这些方法比较少用。使用流也是一般都是创建一个新文件而已
流的概念
Java中对文件的操作是以流的体例进行的。流是Java内存中的一组有序数据序列。Java将数据年夜源(文件、内存、键盘、收集)读入到内存中,形成了流,然后将这些流还可以写到此外的目的地(文件、内存、节制台、收集),之所以称为流,是因为这个数据序列在分歧时刻所操作的是源的分歧部门。
流的分类
初学者对流分类是很模糊的。我也不例外。我记得让我最头疼的是。InputStream,FileInputStream,BufferedInputStream ,DataInputStream等等很多的流不知道如何使用。看到别人的代码有时候读取图片只用到InputStream,但是有些时候使用FileInputStream和BufferedInputStream,这个就是对流的整体的分类不清楚导致的
----------输入流(InputStream)
这两个流就是字节流的基类了。不管字节流怎么变化,都是继承了他们。以InputStream为例,下面
--------字节流: ByteArrayInputStream PipedInputStream,StringBufferedInputStream,FileInputStream。大家是否
有点眼前一亮,发现了常用的FileInputStream,对,只有记住这个流就好了。FileInputStream是
DataInputStream(常用),BufferedInputStream(常用),LineNumberInputStream等的父类
------------输出流(OutputStream) OutputSteam 和InputStream总是对应的。这里就不一一写出来的。有输入流就有输出流,他们结构一样
按照流的单位可以分:
---------Reader
----------字符流(常用于文本类型的数据或字符串流) 像上面一样,Reader和Writer就是字符流的基类,不管字符流这么变化,都是继承
了他们。Reader下面CharArryReader,FilerReader,PipedReader BufferedReader(常用),InputStreamReader(常用),只要记住这两个常用的字符流子类就好。InputStreamReader下面有FileReader(重要)