java中的IO流

原创 2015年07月10日 23:26:27

在变量、数组和对象中存储的数据是暂时存在的,程序结束后它们就会丢失。为了能够永久的保存程序创建的数据,需要将其保存在磁盘文件中,这样就可以在其它程序中使用它们。Java的I/O技术可以将数据保存到文本文件、二进制文件甚至是ZIP压缩文件中,以达到永久性保存数据的要求。

1、IO流用来处理设备之间的数据传输。

2、Java对数据的操作是通过流的方式。

3、Java用于操作流的对象都封装在IO包中。

4、流按操作数据分为两种:字节流与字符流。

5、流按流向分为:输入流,输出流。

        IO

                        字符流的抽象基类: Reader,Writer

字节流的抽象基类 : InputStream,OutputStream

IO流体系

Reader类的层次结构:

Writer类的层次结构:


 InputStream类的层次结构:

OutputStream类的层次结构:


字符流的缓冲区

1、缓冲区的出现提高了对数据的读写效率。

2、对应类。

(1) BufferedWriter

(2) BufferedReader

3、缓冲区要结合流才可以使用。

4、在流的基础上对流的功能进行了增强。


File 类:

•java.io包中的File类提供了与具体平台无关的方式来描述目录和文件对象的属性功能。其中包含大量的方法可用来获取路径、目录和文件的相关信息,并对它们进行创建、删除、改名等管理工作。因为不同的系统平台,对文件路径的描述不尽相同。为做到平台无关,在Java语言中,使用抽象路径等概念。Java自动进行不同系统平台的文件路径描述与抽象文件路径之间的转换。

• File类的直接父类是Object类。

• 下面的构造方法可以用来生成File 对象:

File(String directoryPath)

File(String directoryPath, String filename)

File(File dirObj, String filename)

这里,directoryPath是文件的路径名,filename是文件名,dirObj 是一个指定目录的File 对象

这些构造方法取决于访问文件的方式。例如,若在应用程序里只用一个文件,第一种创建文件的结构是最容易的。但若在同一目录里打开数个文件,则后种方法更好一些。


2.OutputStream:继承自OutputStream的流是用于程序中输入数据,且数据的单位为字节:

OutputStream的基本方法:

Void write (int b)//向输入流中写入一个字节数据,该字节数据为参数b的低8位

Void write(byte[] b)//将一个字节类型的数组中的数据写入输出流

Void write(byte[] b,int off,intlen)//将一个字节类型的数组中的从指定位置(off)开始的len个字节写入到输出流

void close()//关闭流释放内存资源

Void flush()//将输出流中缓存的数据全部写到目的地


3.Reader:继承自Reader流的都是用于向程序中输入数据,且数据单位为字符。
Reader的基本方法:
int  read()//读取一个字符并以整数的形式返回(0~255),如果返回-1表示已到输入流的末尾。
int  read(byte[] buffer)//读取一系列字符并存储到一个数组buffer,返回实际读取的字符数,如果读取前已到输入流的末尾返回-1
int  read(byte[] buffer,int offer,int length)//读取length个字符,并存储到一个字节数组buffer,从length位置开始,返回实际读取的字符数,如果读取前已到输入流的末尾返回-1
void close()//关闭流释放内存资源

long skip (long n)//跳过n个字符不读,返回实际的字符数


4.Writer:继承自Writer的流都是用于程序中输入数据,且数据单的单位为字符
Writer的基本方法
Void write (int c)//向输入流中写入一个字符数据,该字符数据为参数c的低16位
Void write(char[] c)//将一个字符类型的数组中的数据写入输出流
Void write(char[] b,int off,int len)//将一个字符类型的数组中的从指定位置(off)开始的len个字符写入到输出流
void writer(String string)//将一个字符串的字符写入到输入流
void writer(String string,int offset,int length) //将一个字符串从offset开始的length个字符写入到输出流
void close()//关闭流释放内存资源
void flush()//将输出流中缓存的数据全部写到目的地


5.缓冲流:减少磁盘的读写次数
BufferInputStream、BufferOutputStream、BufferReader、BufferWriter
其构造方法为:
BufferInputStream(InputStream in)
BufferInputStream(InputStream in,int size)//sz为自定义缓存区的大小
BufferOutputStream(OutputStream out)
BufferOutputStream(OutputStream out,int size)
BufferReader(Reader in )
BufferReader(Reader in,int size)
BufferWriter(Writer out)
BufferWriter(Writer out,int size)

注意:
BufferReader提供readLine方法用于读取一行字符串(以\r或\n分隔)
BufferWriter提供newLine用于写入一个行分隔符
对于输出的缓冲流,写出的数据会现在内存中缓存,使用flush方法将会使内存中的数据立刻出来


6.Object流:ObjectInputStream 和ObjectOutputStream需要实现serializable接口实现序列化
序列化:序列化只能保存对象的非ststic成员,不能保存任何成员方法和static成员变量,而且序列化保存的只是变量的值;
用transient关键字修饰的变量为临时变量,不能被序列化;
当成员变量为引用类型时,引用的对象也被序列化。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java学习笔记之IO流

  • 2016-08-11 07:36
  • 15KB
  • 下载

『黑马程序员』---java--IO--对象序列化-管道流

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ 直接操作对象的流(对象的持久化,序列化,可串行性) Obje...

JAVA_IO流学习总结

  • 2014-06-24 09:24
  • 1.01MB
  • 下载

Java中的IO流类详解

  • 2014-11-15 08:02
  • 640KB
  • 下载

Java基础:IO流之File类

一、File类概述文件和目录路径名的抽象表示形式1、构造方法 方法 功能描述 File(String pathname) 根据路径得到File对象 File(String paren...

java IO 流

  • 2012-07-16 12:52
  • 268KB
  • 下载

java_io 流介绍

  • 2013-08-02 00:04
  • 48KB
  • 下载

java学习笔记-IO流

一、流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。 一个流,必有源端...

java IO流的运用

  • 2013-04-12 16:48
  • 2.00MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)