FileInputStream
构造方法:
FileInputStream(String path) 参数path:所读取文件的路径名
FileInputStream(File file) file:所读取文件的对象
常用方法:
int read()
一次读一个字节 返回的int值是读到的数据
int read(byte[] b)
一次读b.length个字节,b是读到的数据,返回的int是读到的数据长度
int read(byte[] b, int off, int len)
一次读取len个字节,将数据放入数组下标为off位置开始
返回的int是读到的数据长度
int available()
文件未读部分的大小
FileOutputStream
构造方法:
FileOutputStream(String path)
FileOutputStream(File file)
FileOutputStream(String path,boolean append)
FileOutputStream(File file,boolean append)
如果append为true表示追加数据,在写入前(调用构造方法)不会清空文件内容
如果append为false或者 不写append参数:在写入前(调用构造方法)会清空文件内容
常用方法:
write(int b)
一次写一个字节,b表示的是写入的数据本身
write(byte[] buf)
一次将buf.length个字节 从buf数组写入文件中
***write(byte[] buf,int off,int len)
每次从buf数组的off位置开始取len个字节写入到文件中
ByteArrayInputStream
从字节数组中读取数据
ByteArrayOutputStream
将数据写入到一个字节数组中
BufferedInputStream
BufferedOutputStream
常用方法:
flush():刷新缓冲区,将缓冲区的数据写入到目标文件
close():1.先调用flush()刷新 2.关闭所包装的流 out.close()
BufferedOutputStream 和 FileOutputStream 异同:
相同点:都是输出字节流,用于写数据
不同点:
BufferedOutputStream
1.写文件不是直接写入目标文件,先写入缓冲区,通过flush()刷新缓冲区数据到目标文件
2.是包装流,操作的是一个节点流
FileOutputStream
1.写文件直接写入目标文件
2.是节点流 操作的是一个文件
------------------------------------------------------
FileReader
常用方法:
int read()
一次读一个字符,int是读到的数据
int read(char[] b)
一次读b.length个字符 b是读到的数据 返回的int是读的长度
int read(char[] b,int off,int len)
FileWriter
常用方法:
write(int b)
将指定字符b写入文件中
write(char[] b)
将b.length个字符从指定b数组写入到文件中
write(char[] b,int off,int len)
把字符数组b中从off位置开始取len个字符写入到文件中
write(String str)
将字符串str写入到文件中
write(String str, int off, int len)
如何解决乱码问题:
保证文件的编码格式 和 流的编码一致
桥梁流:
将字节流 按照 指定的charset 转成 字符流
InputStreamReader (extends Reader)
OutputStreamWriter
构造方法:
InputStreamReader(inputStream in,charset cs)
BufferedReader BufferedWriter的特点:
可以读或者 写一行数据
BufferedReader: String readLine() 每次读取一行数据
BufferedWriter: newLine() 写入一个换行符
----------------------------------------------------
1. 读取gbk格式的a.txt文件内容 拷贝到utf8格式的b.txt文件中
2. 写一个方法,要求从控制台输入一个文件的路径与 要拷贝到的目录 进行文件拷贝
String src = "d:/a/1.txt"
String dest = "d:/b"
3. 分割一个原始文件(file.src)的大小是20.2KB,按照指定分割文件大小是5kb,分别分割到5个文件中(前4个文件大小为5kb,最后一个包含了剩余字节)
分割后的5个文件名为file1.src ... file5.src
public static void split(String path,int size)
path: 原始文件名
size: 指定分割大小(单位是字节) 5kb=5*1024字节
文件合并:
public static void merge(String[] fileparhs,String dest)
fileparhs : 分割后的文件名数组
dest:合并后的文件路径
------------------------------------------------
对象流
讲师笔记,Java基础学习之路之day21——IO流的方法
猜你喜欢
转载自blog.csdn.net/u011189148/article/details/81417189
今日推荐
周排行