IO—2

来源:互联网 发布:安娜贝尔2 知乎 编辑:程序博客网 时间:2024/05/15 23:45
 

2011年8月30日星期二 晴

书山有路勤为径,学海无涯苦作舟。这句毛爷爷的话从今天起就作为我的座右铭了。

今天是开学的第二天,感觉今天的我在课上有上课的感觉了。在第一天的时候我感觉自己的心思还不再学习上呢。今天我认认真真的听了3节课,明白了今天老师讲的内容了,但是我还是不知道什么是构造函数,构造函数怎么用。只知道今天讲的字节输入输出流,在讲File时,我就处于迷糊的状态了。我认为今天我在学习上最大的收获就是学会了一些在eclipse和myeclise上的快捷方式,我感觉这样的快捷方式挺适合我的,我今天就开始了实行的计划,我感觉我对自己今天的表现很满意,至少我在打代码的时候我很认真,努力。我以前是一个不能吃苦的人,但是我发现我不是不能吃苦,是我没那毅力去坚持下去,在蒸笼般的教师了,每个人散发出的热量,每台机器的热量把风扇的风的温度都变得闷热起来,我在这样的环境下写了一下午的代码,是我以前想都没想过的事,我在以前我一定会放弃了吗,回到宿舍区凉快了。其实在下午的时候我也想过我不写了,但是我心中有一个人目标了,我希望我能坚持下去,用我的能力去证明我的自己,不想让别人看不起我了。虽然我是个女生,但是我要像军人一样的严格要求自己。那样我的一些坏得习惯也会改掉的,我希望我自己从今以后要变得强大起来,有了好的工作才会有钱去享受了。

今天的作业我做的也是不怎么明白,经过同学的讲解我也不怎么清楚。现在就晒晒我今天学的知识吧

流概述

流的分类:

按数据流动方向

–     输入流:只能从中读取字节数据,而不能向其写出数据

–     输出流:只能向其写入字节数据,而不能从中读取数据

按照流所处理的数据类型

–     字节流:用于处理字节数据。

–     字符流:用于处理Unicode字符数据

按照流所处理的源

–     节点流:从/向一个特定的IO设备读/写数据的流

–     处理流:对已存在的流进行连接和封装的流

基本流类的继承关系

 

 


File类

1.由于不同操作系统的文件分隔符以及路径分隔符不同,因此,如果要获取当前系统的文件和路径的分隔符,可使用以下两个静态常量。

     public static final char separatorChar;

     public static final char pathSeparatorChar;

 

2.访问文件对象

    public String getName()  //返回文件对象名,不包含路径名

    public String getPath()    //返回相对路径名,包含文件名

    public String getAbsolutePath()   //返回绝对路径名,包含文件名

    public String getParent()      //返回父文件对象的路径名

    public File   getParentFile()    //返回父文件对象

过滤流

抽象的InputStream和OutputStream类允许我们对字串及数字进行读写。为达到这个目的,还需要功能更多的子类。例如:DateInputStream和DataOutputStream允许我们对所有基本的java类型进行读写。

    文件流类与抽象的InputStream和OutputStream类相似,这些类也只支持字节级的读写操作。换言之,只能从fin对象中读取字符和字节数组。byte b=fin.read(),他们没有提供专门的数值类型,所以DataInputStream没有办法从一个文件中获取数字。

解决方案:java给流职责分工,某些流(FileInputStream)负责从文件或另一些更特殊的地方读入字节数据。而另一些流

(DataInputStream、PrintWriter)负责将字节“组装”成更有用的数据类型。必须综合运用这两种流,将其合并成所谓的"过滤流(FilteredStreams)",方法是将一个现成的流传递给另一个流的构建器。

数据流

DataInputStream

DataOutputStream

字节缓冲流

BufferedInputStream

BufferedOutputStrem

类的构造及成员详见文档

默认情况下,流不会进行缓冲。即每读一次,都会要求操作系统提供一个字节。通过BufferedInputStream和

BufferedOutputStream对流构建器进行过滤分层,实现缓冲。

 1、构造函数:

BufferedInputStream(InputStream in)    

BufferedInputStream(InputStream in, int size) //size:缓冲区的大小  

 2、代码演示: 

BufferedInputStream bis=new BufferedInputStream(System.in);   

BufferedInputStream bis=new BufferedInputStream(System.in ,100);  

 

 

原创粉丝点击