Java.io包中的流的输入输出详解1(字节流)

本文详细介绍了Java.IO包中的字节流,包括File类的基本操作,流的概念,以及字节流的分类。重点讨论了InputStream和OutputStream的子类,如FileInputStream和FileOutputStream,讲解了它们的常用方法。通过实例展示了如何使用这些流进行文件的读写操作,并对比了使用过滤流(如BufferedInputStream和BufferedOutputStream)的优势。文章最后提及了DataInputStream和DataOutputStream,用于简化流数据的读写。
摘要由CSDN通过智能技术生成

由于流在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(重要)

                                                                                                          

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值