2019/3/1 IO流的学习总结

Java学习之IO流

学习Io流之前,我们先了解文件,以及在Java中对文件的操作。首先对文件进行操作,就必须用 File F = new File(“d:\\文件名”); 表示该文件或文件夹的地址寻找或者创建(这个语句一般被认为对已经存在的文件用File对象进行绑定,但实际上如果不存在,还会创建,语法是 File F = new File(“文件路径”,”文件名”);这样,就可以完成对文件的创建);无论是对文件的操作还是Io流的使用,第一步必须是这个!以下是对文件的一般操作:

基础操作:

  1. 判断文件是否存在:  F.exists();  其值为 true or false
  2. 判断是否是文件夹:  F.isDirectory(); 其值为 true or false
  3. 判断是否是文件: F.isFile() ; 其值为 true or false
  4. 获取文件的长度:   F.length();  其返回格式为 long 型(一般需要强制转换为int型)
  5. 获取文件的最后修改时间: F.lastModified();  其返回long型整数,以作为创建一个时间对象的参数
  6. 给文件重命名: F.rename(F2); F指向的文件会被重命名,名字是F2指向的文件的名字

进阶操作:

  1. 以字符串数组的形式,返回当前文件夹下的所有文件(不包含子文件):F.list(); String Str[] = F.list; 再依次输出Str的内容,会得到当前文件夹下所有文件的名字。
  2. 以文件数组的形式,返回当前文件夹下的所有文件:File FF[] = F.listFile();FF[]会包含其下所有文件。
  3. 以字符串形式返回当前所在文件夹: F.getParent();
  4. 以文件形式返回当前所在文件夹:  F.getParentFile();
  5. 删除文件:  F.delete();
  6. Jvm结束时删除文件: F.deleteOnExit();

以上是对文件的各种操作。

在学习完文件的操作之后,开始学习IO流。

首先先明白几个流的关系,以下是关系图:

首先学习字节流以及子流:

-------------------------------------------------------------------------------

字节流:

首先 创建文件对象:File F = new File(“d:\\文件名”);

其次 创建读取字节流对象 FileInputStream Fin = new FileInputStream(F);以及输出字节流对象 FileOutputStream Fou = new FileOutputStream(F);

字节流的读取以及输出方法:

首先创建字节数组:byte BB = new byte[(int)F.length()];

读取:Fin.read(BB);(读取的内容存在BB数组上)

输出:Fou.write(BB);(将BB数组上的内容输出在F所指向文件上!

字节流下的数据流:(数据流原则:必须先写后读!)

关键字:DataOutputStream;DataInputStream;

为什么用数据流:

因为使用它可以进行数据的格式化顺序读写,有效提高效率!

在使用数据流之前,需要创建字节流:

FileInputStream Fin = new FileInputStream(F);

FileOutputStream Fou = new FileOutputStream(F);

再利用字节流创建数据流:

DataOutputStream Dou = new DataOutputStream(Fou);

DataInputStream Din = new DataInputStream(Fin);

数据流的使用方法:

字符串的写读: Dou.writeUTF(Str);Str = Din.readUTF();

整数的写读:Dou.writeInt(int a ); int a = Din.readInt();

布尔值的写读: Dou.writeBoolean(Boolean B);Boolean B =  Din.readBoolean();

等等。

字节流下的对象流:

使用对象流来操作的这个对象,其所属类必须实现了Serializable接口;

也就是说:class 类名 implements Serializable{};

在使用对象流之前,需要创建字节流:

FileInputStream Fin = new FileInputStream(F);

FileOutputStream Fou = new FileOutputStream(F);

再利用字节流创建对象流:

ObjectOutputStream Oou = new ObjectOutputStream(Fou);

ObjectInputStream Oin = new ObjectInputStream(Fin);

对象流的使用方法:

写入对象:Oou.writeObject(Hreo H);

读取对象:Hero h =(Hero) Oin .readObject();

Ps:     对象流也会顺序读写

----------------------------------------------------------------------------------------------------------------------------

以下是字符流的内容:

老样子,先 File F = new File(“d:\\文件名”);

再: FileReader FR = new FileReader( F );

FileWriter FW = new FileWriter(F);

方法:

char c = new c[100];  FR.read( c ); 读取字符到c数组中去

FW.write( c );  将c数组的内容写到F指向文件中去

字符流下的缓存流:

在使用缓存流之前,需要创建字符流:

FileReader FR = new FileReader( F );

FileWriter FW = new FileWriter(F);

再利用字符流创建缓存流:

BufferedReader BR = new BufferedReader(FR);

PrintWriter PW = new PrintWriter(FW);

使用方法:

String Str = BR.readLine();

//这个方法会一直读,每次读一行,直到读完Str 为空为止

PW.println(Str);

//这是一整个数据读入

立即把数据写入硬盘: PW.flush();

2019/3/1

原文地址:https://www.cnblogs.com/qq1005801715/p/10455434.html

时间: 2024-11-03 15:47:24

2019/3/1 IO流的学习总结的相关文章

Java io流的学习

最近几天仔细学了Java的io流,本来是打算看视频通过视频来学习的,可是后来发现其实视频看不怎么懂也感觉不是很容易上手,所以就通过百度和api文档学习了Java的io流 io流可以有两个分类,一个是字节流和字符流,另一个是输入流和输出流. 先说说字节流和字符流吧:首先实际上字节流在操作的时候是不会用到缓冲区的,是文件本身的直接操作的,但是字符流在操作的时候下会用到缓冲区的,是通过缓冲区来操作文件的.字节流与字符流的其他区别呢就是读写单位不同,毫无疑问,字符流是以字符为单位,字节流是以字节为单位(

关于JAVA IO流的学习

初学Java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见. 首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!) 这是java io 比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于io的处理类,比如console类,SteamTokenzier,Externalizable接口,Serializa

。。。IO流的学习之一。。。

文件写入流FileWriter的使用: 1 import static org.junit.Assert.*; 2 3 import java.io.File; 4 import java.io.FileWriter; 5 import java.io.IOException; 6 7 import org.junit.Test; 8 9 10 11 public class MyTest { 12 //通过字符流写入数据到指定的文件中 13 @Test 14 public void testW

java的Io流学习

Java中io流的学习(一)File:https://blog.csdn.net/qq_41061437/article/details/81672859 Java中io流的学习(二)FileInputStream和FileOutputStream:https://blog.csdn.net/qq_41061437/article/details/81742175 Java中io流的学习(三)BuffereInputStream和BuffereOutputStream:https://blog.

Java基础学习笔记二十 IO流

转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStreamWriter,这又是什么意思呢? OutputStreamWriter类 查阅OutputStreamWriter的API介绍,OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节.它的作用的就是,将字符串按照指定的编码表转成字节,

学习IO流

学习IO流,不得不提到的就是JavaIO流.流就是字节序列的抽象概念,能被连续读取数据的数据源和能被连续写入数据的接受端就是流,流机制是Java及C++中的一个重要机制,通过流我们可以自由得控制文件,内存,IO设备等数据的流向. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是是数据传输,根据数据传输的特殊性将流抽象为各种类,方便更直观的进行操作.

(转载) java:IO流学习小结

今天刚刚看完Java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理设备上得数据操作,根据处理数据的数据类型的不同可以分为:字节流(抽象基类为InPutStream和OutPutStream)和字符流(抽象基类为Reader和Writer).根据流向不同,可以分为:输入流和输出流.  其中主要结构可以用下图来表示:  字符流和字节流的主要区别: 1.字节流读取的时候

java基础学习笔记之IO流

1.IO流用来处理设备之间的数据传输方向:硬盘通过“读reader”完成对内存的读取,内存通过“写writer”完成对硬盘的写入2.Java对数据的操作是通过流的方式3.Java用于操作流的对象都在IO包中4.流按操作数据分为两种:字节流和字符流--字符流的由来:>>字节流读取文字字节数据后,不直接操作而是先查指定的编码表.获取对应的文字.再对这个文字进行操作.简单说:字符流=字节流+编码表--字节流的两个顶层父类:1.InputStream 2.OutputStream--字符流的两个顶层父

JAVA学习第四十七课 — IO流(一):文件的读写

输入流和输出流相对于内存 将外部设备的数据读取到内存中:输入 将内存中的数据写入外部设备中:输出 IO流常用基类 字节流的抽象基类:InputStream,OutputStream 字符的抽象基类:Reader,Writer PS:由这四个流派生出的子类都是以父类名作为后缀名 如:InputStream的派生类FileInputStream,Reader的派生类FileReader PS:如果是文字形式的数据应该优先考虑字符流,且将数据从内存写到硬盘上应该是Writer FileWriter类