您的位置:首页 > 编程语言 > Java开发

Java学习日记之掌控硬盘(1)

2015-06-19 19:14 197 查看
在冯诺依曼体系下,核心是内存。程序运行在内存中,一切硬件围绕内存而处理,所有从内存流出的信息都被称为输出流,所有流向内存的信息都被称为输入流,输入/输出流简称I/O流。

1.字节流与字符流

字节流是指按字节读写信息的方法。字符流事以字符为单位读写信息的方法。

字节流和字符流内基本都是成对出现输入流和输出流的类。字节流的输入基类是InputStream,字节流的输出基类是OutputStream。字符流的输入基类是Reader,字符流的输出基类是Writer。

1.  File类

(1)   是IO中唯一代表磁盘文件本身信息的类,而不是文件中的内容

(2)   定义了一些与平台无关的方法来操作文件,例如创建、删除、重命名

(3)   java中的目录被当做一种特殊的文件被使用,list方法可以返回目录中的所有子目录和文件

(4)   在UNIX下的路径分割符为(/),在doc下的分割符为(\),java可以正确处理Unix和doc下的路径分隔符

 

2.RandonAccessFile

(1) RandomAccessFile类提供了众多的文件访问方法

(2) RandomAccessFile支持随机访问的方式

(3)   RandomAccessFile在随机(相对顺序而言)读写记录格式的文件时有很大的优势。

(4) RandomAccessFile仅限于操作文件,不能访问其他的IO设备,如网络内存映像等。

(5)   两种构造方法

new RandomAccessFile(file,”rw”);读写方式

new RandomAccessFile(file,”r”);只读方式

 

3. 节点流

(1)流的概念

流是字节序列的抽象概念

文件是数据静态存储的形式,而流是指数据传输时的形态

Java分节点流和过滤流两大类

(2)InputStream类和OutputStream类

程序可以连续读取字节的对象叫输入流,在java中,用InputStream类来描述所有输入流的抽象概念。

InputStream类的方法:int read();(当没有数据可读的时候处于阻塞状态)

int read(byte[]b);

int read(byte[]b,int off,int len);

longskip(long n);

intavalable();

voidmark(int readlimit);

voidreset();

booleanmarkSupprted();

voidclose()

有垃圾回收机制,还要调用close()方法的原因,相关资源指系统产生的资源,调用close()方法能释放系统产生的资源,java程序类实例回收类实例,系统资源管不了,所以要调用close();

(3)OuputStream类

程序可以向其中连续的写入字节流的对象叫输出流,在java中,用OutputStream类来描述所有输出流的抽象概念。

OutputStream 方法

Void write(int b);

Void write(byte[] b),int off,int len;

Void flush();

Void close();

(4)FileInputStream类FileOutputSteam类

用于创建磁盘文件的输入流和输出流对象,通过构造函数来指定文件路径和文件名。

创建FileInputStream实例对象时,指定的文件应该是存在而且是可读的,FileOutputSteam实例对象时,如果指定的文件已经存在,这个文件中的内容将被覆盖清楚。

对一个磁盘文件创建FileInputStream对象的两种方式:

1. FileInputStream inOne = newFileInputStream(“aaa.txt”);

2. File f = new File(“aaa.txt”);

FileInputStream inOne = newFileInputStream(f);

(5) Reader与Write类

所有字符流类的抽象基类,用于简化对字符串的输入输出编程,即用于读写文本数据

二进制文件和文本文件的区别

这两个类主要用操作文本文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  输入输出