Java知识点整理:第十二章:java文件系统管理、IO流(Input(输入)/Output(输出)) 、缓冲流
2016-11-17 09:24
567 查看
1.Java文件系统管理:
1.File类
java.io.File类用于表示文件、目录.
也就是说编程人员可以通过File类在程序中操作硬盘上的文件和目录(文件夹)
File类只用于表示文件、目录的相关信息(文件路径.文件名称.文件大小...)不能对文件的内容进行访问.
File的基本API:
File(String) 执行文件名的构造器
length() 文件的长度
lastModified()
最后的修改时间.
getName() 获取文件的名字
getPath() 路径
exists() 判断是否存在
isFile() 是不是文件
isDirectory()
是不是目录
mkdir()
创建目录
mkdirs() 同时创建多个目录
delete() 删除
createNewFile()
创建新文件
listFile() 罗列所有的文件.
2.RandomAccessFile
RandomAccessFile类是java提供的功能丰富的文件内容访问类.它提供了从多方法来访问文件内容,既可以读取文件内容,也可以向文件写数据.
RandomAccessFile支持"随机访问"方式.可以访问文件的任意位置.
a.java文件模型
在硬盘上文件是以"byte by byte"存储的。
是数据的集合.
b.打开文件
有两种方式: rw(读写), r(只读)
RandomAccessFile raf = new RandomAccessFile(file,"rw");
打开文件的时候默认文件的指针在开头:
pointer =0
c.读取文件
raf.read();
每次从文件中读取一个byte(8位)填充到int的低八位.高24位为0.
如果返回了-1,代表读到文件的末尾.
每次读取后自动移动文件指针.准备下次读取
d.写入方法
raf.write(int);
可以将int的低8位写入到文件中.同时指针自动移动到下一个位置,准备再次写入.
e.文件读写完成以后一定要关闭文件.
sun官方说明,如果不关闭,可能遇到一些 意想不到的错误.根据具体操作平台的不同会有不同的现象。
在使用过程中,切记文件读写完成后要:关闭文件.
例如:
11111111 00000000 00000000 11111111
java中的位移运算.
左移<<:高位舍弃,低位补0
可能会发生符号的改变.
右移:
带符号右移: >>
高位补原来的符号.原来是1就补1
原来是0就补0
不带符号右移 >>>
高位全部补0
不管是无符号右移还是带符号右移,移出去的全部舍弃.
2.IO流(Input(输入)/Output(输出))
:
1.IO流(Input(输入)/Output(输出))
RandomAccessFile
raf.read()
输入
raf.write()
输出
java中的IO流是实现输入\输出的基础.
a.InputStream
输入流,抽象了应用程序读取数据的方式
OutputStream
输出流,抽象了应用程度写出数据的方式
输入流与输出流是相对于应用程序而言的,应用程序是参照物.
b.已知子类:
FileInputStream(文件字节输入流)
FileOutputStream(文件字节输出流)
fis:
从文件中读取字节,如果读取到文件的末尾会返回-1
fos:往文件中写出字节数据.
可以实现数据的追加写入.在构造fos的时候需要设置,newFOS(file,true);
true:代表着追加写入.
注意:输入\输出流使用完以后一定要close
2.DataInputStream/DataOutputStream(数据流)
dis以及dos是对"字节流"的扩展,可以更方便的读写int,long,char等基本类型的数据.
dis跟dos是对基本字节流的封装.
不能直接对文件进行访问.而是要依赖fis|fos.
3.序列化以及反序列化
序列化:将内存中数据写到硬盘上的文件中.
数据--->nbyte
int a = 5 ;
fos.write(a) //
低八位
dos.writeXXX(a) //完整的32位
反序列化:将硬盘上文件中的内容读取到内存中
n byte--->数据
fis.read()
dis.readXXX()
3.缓冲流
BufferedInputStream
缓冲输入流
BufferedOutputStream
缓冲输出流bis以及bos为IO操作提供了缓冲区.
一般打开文件进行写入或者读取操作时,都建议加上缓冲流.可以提供IO的性能.
缓冲流为读写都提供了缓冲区,数据读到缓冲区中,然后再写到缓冲区中.最后将缓冲区中的数据一次性写到硬盘上.
在使用的时候需要注意:
关闭输出流之前一定要保证缓冲区中的数据全部写出.
1.File类
java.io.File类用于表示文件、目录.
也就是说编程人员可以通过File类在程序中操作硬盘上的文件和目录(文件夹)
File类只用于表示文件、目录的相关信息(文件路径.文件名称.文件大小...)不能对文件的内容进行访问.
File的基本API:
File(String) 执行文件名的构造器
length() 文件的长度
lastModified()
最后的修改时间.
getName() 获取文件的名字
getPath() 路径
exists() 判断是否存在
isFile() 是不是文件
isDirectory()
是不是目录
mkdir()
创建目录
mkdirs() 同时创建多个目录
delete() 删除
createNewFile()
创建新文件
listFile() 罗列所有的文件.
2.RandomAccessFile
RandomAccessFile类是java提供的功能丰富的文件内容访问类.它提供了从多方法来访问文件内容,既可以读取文件内容,也可以向文件写数据.
RandomAccessFile支持"随机访问"方式.可以访问文件的任意位置.
a.java文件模型
在硬盘上文件是以"byte by byte"存储的。
是数据的集合.
b.打开文件
有两种方式: rw(读写), r(只读)
RandomAccessFile raf = new RandomAccessFile(file,"rw");
打开文件的时候默认文件的指针在开头:
pointer =0
c.读取文件
raf.read();
每次从文件中读取一个byte(8位)填充到int的低八位.高24位为0.
如果返回了-1,代表读到文件的末尾.
每次读取后自动移动文件指针.准备下次读取
d.写入方法
raf.write(int);
可以将int的低8位写入到文件中.同时指针自动移动到下一个位置,准备再次写入.
e.文件读写完成以后一定要关闭文件.
sun官方说明,如果不关闭,可能遇到一些 意想不到的错误.根据具体操作平台的不同会有不同的现象。
在使用过程中,切记文件读写完成后要:关闭文件.
例如:
11111111 00000000 00000000 11111111
java中的位移运算.
左移<<:高位舍弃,低位补0
可能会发生符号的改变.
右移:
带符号右移: >>
高位补原来的符号.原来是1就补1
原来是0就补0
不带符号右移 >>>
高位全部补0
不管是无符号右移还是带符号右移,移出去的全部舍弃.
2.IO流(Input(输入)/Output(输出))
:
1.IO流(Input(输入)/Output(输出))
RandomAccessFile
raf.read()
输入
raf.write()
输出
java中的IO流是实现输入\输出的基础.
a.InputStream
输入流,抽象了应用程序读取数据的方式
OutputStream
输出流,抽象了应用程度写出数据的方式
输入流与输出流是相对于应用程序而言的,应用程序是参照物.
b.已知子类:
FileInputStream(文件字节输入流)
FileOutputStream(文件字节输出流)
fis:
从文件中读取字节,如果读取到文件的末尾会返回-1
fos:往文件中写出字节数据.
可以实现数据的追加写入.在构造fos的时候需要设置,newFOS(file,true);
true:代表着追加写入.
注意:输入\输出流使用完以后一定要close
2.DataInputStream/DataOutputStream(数据流)
dis以及dos是对"字节流"的扩展,可以更方便的读写int,long,char等基本类型的数据.
dis跟dos是对基本字节流的封装.
不能直接对文件进行访问.而是要依赖fis|fos.
3.序列化以及反序列化
序列化:将内存中数据写到硬盘上的文件中.
数据--->nbyte
int a = 5 ;
fos.write(a) //
低八位
dos.writeXXX(a) //完整的32位
反序列化:将硬盘上文件中的内容读取到内存中
n byte--->数据
fis.read()
dis.readXXX()
3.缓冲流
BufferedInputStream
缓冲输入流
BufferedOutputStream
缓冲输出流bis以及bos为IO操作提供了缓冲区.
一般打开文件进行写入或者读取操作时,都建议加上缓冲流.可以提供IO的性能.
缓冲流为读写都提供了缓冲区,数据读到缓冲区中,然后再写到缓冲区中.最后将缓冲区中的数据一次性写到硬盘上.
在使用的时候需要注意:
关闭输出流之前一定要保证缓冲区中的数据全部写出.
相关文章推荐
- java学生管理系统(IO流和文件实现)
- java.io 通过数据流、序列化和文件系统提供系统输入和输出
- Java基础之IO流,打印系统信息至标准输出设备或文件中Properties.list()
- C++ 标准函数库 —— 文件的输入输出 (Input/Output with files)
- java--IO流-LineNumberReader,读取键盘录入,字符字节流转换,改变标准输入输出设备,异常的日志信息,系统信息
- 使用Java的输入输出流技术将Input.txt的内容逐行读出,每读出一行就顺序为其添加行号(从1开始,逐行递增),并写入到另一个文本文件Output.txt中
- java笔记→IO流中字节,字符的输入与输出(文件)
- java—数组乘积输入: 一个长度为n的整数数组input 输出: 一个长度为n的数组result,满足result[i] = input数组中,除了input[i] 之外的所有数的乘积,不用考虑溢出例如 input {2, 3, 4, 5} output: {60, 40, 30, 24}
- 文件的输入输出与假加密——略析JAVA的IO流
- C++ 标准函数库 —— 文件的输入输出 (Input/Output with files)
- 文件的输入输出_歌曲管理系统
- Ubuntu 16.04使用NASM编译时用ld链接程序出现:i386 架构于输入文件 sandbox.o 与 i386:x86-64 输出不兼容(I386 architecture in the input file sandbox.o is not compatible with i386: x86-64 output)
- 从零开始学java 之 DVD的增删改查管理系统(方法,界面,数据库相分离)用IO流写入文件代替数据库
- java 输入/输出流小记,文件copy的例子
- 在程序开始运行时,系统自动打开3个标准文件:标准输入、标准输出、标准出错输出
- java输入输出处理-文件file
- Problem Description 求n个数的最小公倍数。 Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。 Output 为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。 Sample
- Java里面最简单好用的文件输入输出方法
- JAVA中文件上传下载知识点整理:
- 第十章 Java语言的输入输出与文件处理