java.io(输入/输出、读/写文件) |
您所在的位置:网站首页 › java文件的读取和写入 › java.io(输入/输出、读/写文件) |
File -> 内存对象,表示文件/目录,和本地有没有这个文件/目录没关系 1.对文件进行[随机]读写的类,不算IO,IO都是单向的RandomAccessFile - 可读可写 - 使用场景:文件复制/文件加密 写 write * 3 write(b) -> 写入指定int值的低八位,单字节 write(bs) -> 写入指定的byte数组的全部字节 write(bs, offset, len) -> 截取一部分字节写入 write 8种基本数据类型写入到文件中的是字节,看到文件内容的是字符 字节转换成字符需要编码 读 read * 3 -> 返回-1表示读到文件末尾 int read() -> 读1个字节,并存入到int类型的低八位,返回读取出来的字节数 int read(bs) -> 读bs.length个字节,并且存入到bs中 int read(bs, off, len) -> 读len个字节,并且在bs中off位置开始存入,返回读取出来的有效字节个数 read 8种基本数据类型 2.字节流InputStream / OutputStream FileInputStream(file) FileOutputStream(file, boolean) -> true/false:指定是否追加 缓冲流: 缓冲区:添加缓冲区的目的就是为了提高效率 访问磁盘空间,和访问缓存(内存),访问内存效率更高 访问磁盘空间: 文件读写 访问数据库 B/S:浏览器/服务器 C/S:客户端/服务器 BufferedReader(Reader(InputStream(file))) readLine(); PrintWriter(Writer(OutputStream(file))) PrintWriter(OutputStream(file)) PrintWriter(file) print() println()字节缓冲流: 以字节为单位 BufferedInputStream BufferedOutputStream 缓冲流是通过节点流包装出来的 字节流: 字节为单位,不是用来读写可视内容,通常用来复制文件,又因为缓冲流效率高,所以复制文件用缓冲流 底层流就是用来生成其它高级流的 字符流: 单位是字符 - 有字符集 默认字符集/指定字符集 Reader / Writer InputStreamReader(InputStream, charset) int read() - 读单个字符 int read(char[]) - 返回读取的有效个数,读出来的字符存入字符数组中 int read(char[], off, len) - 返回读取的有效个数,读出来的字符存入数组从off位置开始 OutputStreamWriter(OutputStream, charset) write(int) - 写单个字符 write(char[]) - 写字符数组 write(char[], off, len) - 写字符数组一部分 flush()/close()对象流 ObjectInputStream ObjectOutputStream 3.总结文件复制: BufferedInputStream(FileInputStream) BufferedOutputStream(FileOutputStream) int read() -> 读单个字节 int read(byte[] bs) -> 读bs.length个字节 int read(byte[], off, len) write(int) -> 写单个字节 write(byte[]) -> 写入数组字节 write(byte[], off, len) 文件内容读写: BufferedReader(InputStreamReader(字节流)) String readLine() -> 读取一整行,返回null末尾 PrintWriter(OutputStreamWriter(字节流)) 指定文件是否追加写入、指定字符集、指定是否自动刷新 print() println() 对象读写: ObjectInputStream(字节流) readObject() ObjectOutputStream(字节流) writeObject(obj) 对象 -> 字节:序列化 对象必须是可序列化的Serializable |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |