一、数据流的基本概念
- 流是一组有顺序、有起点和终点的数据构成集合,来完成数据输入输出,属于
java.io
包中。 - 输入字节流常用方法(最重要的是读):
1.int read()
读一个字节
2.int read(byte[] b)
读一批字节放数组
3.int read(byte[] b,int off,int len)
读一批字节并放到数组指定位置
4.long skip(long n)
滑动指针
5.void close()
关闭流
6.int available()
剩余多少未读
7.boolean markSupported()
8.void mark(int readlimite)
9.void reset()
- 输出字节流常用方法(最重要的是写):
1.void write(int b)
写一个字节
2.void write(byte b[])
写一个数组
3.void write(byte b[],int off,int len)
在指定位置写多个字节
4.void flush()
清空缓冲区域
5.void close()
关闭流
二、基本字节数据流类
- 文件数据流
1.FileInputStream
和FileOutputStream
类实现对文件进行读写操作;
2. 不支持mark()
和reset()
- 缓冲数据流:为了提高读写速度
1.BufferedInputStream(InputStream in)
2.BufferedInputStream(InputStream in,int size)
3.BufferedOutputStream(OutputStream out)
4.BufferedOutputStream(OutputStream out,int size)
5. 常用方法read();write();flush();
- 数据数据流
1.DataInputStream
读取基本类型的方法
2.byte readByte()
3.long readLong()
4.double readDouble()
5.boolean readBoolean()
6.String readUTF()
7.int readInt()
8.float readFloat()
- 对象流
//向文件写对象流创建 FileOutputStream fo = new FileOutputStream("文件"); ObjectOutputStream oo = new ObjectOutputStream(fo) Student stu = new Student(); stu.setName("黎明"); oo.writeObject(Object stu );//将对象信息写入文件也叫序列号 oo.close() //向文件读对象 FileInputStream fi = new FileInputStream("文件"); ObjectInputStream oi = new ObjectInputStream(fi) stu = (Student )oi.readObject()//读取信息写入对象也叫反序列化 oi.close();
- 序列化:对象信息长久保存到文件叫序列化
implements Serializeable
,反之叫反序列化。
三、基本字符流
- 输入(字节流转字符流)
1.InputStreamReader(InputStream in)
2.InputStreamReader(InputStream in,String enc)
指定编码方式
3.FileReader(文件);read(char[] c);
字符变字符数组
4.BufferedReader(Reader r);readLine()//读一行;
效率更高 - 输出(字节流转字符流)
1.OutputStreamWriter(OuptputStream out)
2.OutputStreamWriter(OuptputStream out,String enc)
指定编码方式
3.FileWriter(文件);write(String s);
4.BufferedWriter(Writer w);newLine();//写一空白行;
效率更高
四、文件的处理
File
类
1. 获取文件名:String getName();
2. 获取文件路径:String getPath()
3. 获取文件绝对路径:Stiring getAbsolutePath()
4. 获取文件父级目录名称:String getParent()
5. 更改文件名:boolean renameTo(File newFileName)
6. 文件对象是否存在:boolean exists()
7. 文件对象是否可写:boolean canWrite()
8. 文件对象是否可读:boolean canRead()
9. 文件对象是否是文件:boolean isFile()
10. 文件对象是否是目录:boolean isDirectory()
11. 文件对象是否是绝对路径:boolean isAbsolute()
12. 获取文件最后修改时间:long lastModified()
13. 获取文件长度:long length()
14. 删除文件:boolean delete()
- 随机访问文件(字节流)
//根据文件名 RandomAccessFile a = new RandomAccessFile(String name,String mode); //根据文件对象 RandomAccessFile b = new RandomAccessFile(File f,String mode); //mode(r:只读方式,rw:读写方式) long getFilePointer();//返回文件指针当前位置 void seek(long pos);//将文件指针放入指定位置
注意:单选题、简答题、程序填空题