【JavaSE】文件与流

1.文件管理

1.1 概述

  • java中,对文件和目录使用java.io.File类来管理
  • 主要是针对文件或目录进行管理,包括属性信息的查看、文件或目录的删除、文件或目录的创建。

1.2 File类

1.2.1主要方法

  • 构造方法
  • 创建文件    createNewFile()方法
  • 创建目录     mkdir()方法      mkdirs()方法
  • 文件删除
  • 删除目录
  1. 在删除目录时,要求目录中没有其它的文件和文件夹,是一个空目录。
  2. 如果目录下面还有文件,使用循环删除文件处理
  3. 如果目录下面还有目录,则需要使用递归方式删除目录处理

1.2.2 其他方法

  • 获取文件名
  • 获取目录名
  • 获取文件大小
  • 设置文件只读
  • 测试应用程序对文件是否可执行\可读\可写
  • 获取文件路径操作
  • 获取文件最后修改时间戳
  • 获取磁盘空间操作
  • 获取所有磁盘分区
  • 对文件重命名
  • 获取文件是否隐藏文件

2.IO流

2.1 简介

  • 是一串连续不断的数据集合,对于程序中数据的输入和输出,都是以数据流的方式进行操作
  • Input流:输入流(读流)
  • Output流:输出流(写流)
  • 站在当前正在运行的程序的角度,来看数据是输入还是输出
  • 源:键盘、文件、网络URL地址、扫描仪、物联网设备等
  • 目标:屏幕、文件、网络URL地址、数据库、物联网设备等

2.2  IO流分类

  • 按流的方向划分:输入流、输出流
  • 按处理数据单位划分:字节流、字符流
  • 按功能不同:节点流、处理流

2.3 四个主要流的API

  • Inputstream: 面向字节的输入流
  • Outputstream: 面向字节的输出流
  • Reader: 面向字符的输入流
  • Writer: 面向字符的输出流

2.4 文件操作流

  • FileReader、FileWriter、 FileinputStream、 FileOutputStream

2.4.1 FileWriter

  • 字符流实现原理:字节流+编码表
  • 字符集:unicode字符集 UTF-8、UTF-16、UTF-32、GB2312、GBK、GB18030
  • 使用FileWriter将字符串写入磁盘文本文件

2.4.1.1常用构造方法

  • FileWriter(String fileName) :将内容写入到给定名字的文件中,文件可以不存在,也可以存在
  • FileWriter(String fileName,boolean append) 可追加
  • FileWriter(File file) :将内容写入file所对应的文件中,文件可以不存在,也可以存在
  • FileWriter(File file,boolean append) :可追加
  • FileWriter(String fileName,CharSet set) 指定字符集

2.4.1.2写数据的五种用法

  • write(String str):将一个字符串写入文件
  • write(int c) :将一个字符写入文件
  • write(char[] chars):将一个字符数组写入文件
  • write(char[] chars,int off,int len) :将一个字符数组,从off位置,写入len长度
  • write(String str,int off,int len) :将一个字符串,从off位置,写入len长度

2.4.2BufferedWriter

  • BufferedWriter和FileWriter的区别
  • FileWriter内部有8192个字节缓冲区
  • BufferedWriter内部有8192个字符(16384个字节)
  • FileWriter效率低,每次来一个字符,要查一次码表,BufferedWriter,缓冲区字符存满或者close、flush之后,才会进行查码表
  • 使用BufferedWriter可以指定缓冲区大小
  • 如果频繁去写文件,最好使用BufferedWriter处理,如果只写一次,FileWriter就可以使用。

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值