博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的常用IO流写法1
阅读量:3595 次
发布时间:2019-05-20

本文共 4285 字,大约阅读时间需要 14 分钟。

1. File类

1.1 构造方法
File(String pathname):通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 File(String parent,String child):根据parent路径名字符串和child 路径名字符串创建一个新File实例。File(File parent,String child):根据parent抽象路径名和child 路径名字符串创建一个新 File 实例。
1.2 创建功能
public boolean createNewFile():创建文件public boolean mkdir():创建目录public boolean mkdirs():创建多级目录
1.3 删除功能
public boolean delete():删除文件和目录
1.4 判断功能
public boolean isDirectory():判断是否是目录public boolean isFile():判断是否是文件public boolean exists():判断是否存在
1.5 获取功能
public String getPath():获取相对路径public String getAbsolutePath():获取绝对路径public String getName():获取名称

2. 字节基本流类

2.1 FileInputStream输入流

构造方法
FileInputStream(String name) ----常用FileInputStream(File file)
读数据的方法(成员方法)
public int read():读取一个字节的数据,如果已到达文件末尾,则返回 -1。public int read(byte[] b):读入一个 byte 数组的数据,如果已到达文件末尾,则返回 -1

2.2 FileOutputStream输出流

构造方法
FileOutputStream(String name) ----常用FileOutputStream(File file)
写数据的方法(成员方法)
public void write(int b):一次写一个字节public void write(byte[] b):一次写一个字节数组public void write(byte[] b,int off,int len):一次写一个字节数组的一部分

3. 字节缓冲区流类

本质:在字节基本流的基础上加了一个缓冲区,里面方法和字节基本流的方法一样,这里就不在一一列出

3.1 BufferedInputStream输入流

构造方法
BufferedInputStream(InputStream in) 需要传一个基本的字节输入流对象

3.2 BufferedOutputStream输出流

构造方法
BufferedOutputStream(OutputStream out) 需要传一个基本的字节输出流对象

4. 转换流

本质是字符流 =  字节流 + 编码表   是字节流到字符流的桥梁

4.1 InputStreamReader输入流

构造方法
public InputStreamReader(InputStream in)//默认UTF-8用默认的编码读数据public InputStreamReader(InputStream in,String charsetName)用指定的编码读取数据
读数据方法
public int read():一次读取一个字符public int read(char[] cbuf):一次读取一个字符数组

4.2 OutputStreamWriter输出流

构造方法
public OutputStreamWriter(OutputStream out)//默认UTF-8根据默认编码把字节流的数据转换为字符流public OutputStreamWriter(OutputStream out,String charsetName)根据指定编码把字节流数据转换为字符流
写数据方法
public void write(int c):写一个字符public void write(char[] cbuf):写一个字符数组public void write(char[] cbuf,int off,int len):写一个字符数组的一部分
特有方法
public void write(String str):写一个字符串public void write(String str,int off,int len):写一个字符串的一部分

5. 字符基本流

继承转换流,转化流的子类,所以他的方法都是继承转换流的,下面我就不再一一列出来了

5.1 FileReader输入流

构造方法
FileReader(String fileName)

5.2 FileWriter输出流

构造方法
FileWriter(String fileName)

6. 字符缓冲区流

本质:在字符基本流的基础上加了一个缓冲区,里面方法和字符基本流的方法一样,这里就不在一一列出

6.1 BufferedReader输入流

构造方法
BufferedReader(Reader in)  传一个字符基本流对象
特有方法
String readLine():包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null

6.2 BufferedWriter输出流

构造方法
BufferedWriter(Writer out)  传一个字符基本流对象
特有方法
void newLine():写入一个行分隔符,这个行分隔符是由系统决定的

7. 序列化流

7.1 ObjectOutputStream类

构造方法
ObjectOutputStream(OutputStream out) 创建一个指定OutputStream的ObjectOutputStream
写对象方法
public final void writeObject (Object obj) : 将指定的对象写出

7.2 ObjectInputStream类

构造方法
ObjectInputStream(InputStream in) 创建一个指定InputStream的ObjectInputStream。
读对象方法
public final Object readObject () : 读取一个对象

8. 打印流

IO流中的单身汉流,只能输出数据,不能读取数据

8.1 PrintStream字节打印流

构造方法
PrintStream(File file) 传一个文件对象PrintStream(String fileName)  传一个文件名PrintStream(OutputStream out) 传一个输出流对象PrintStream(OutputStream out, boolean autoFlush) 传一个输出流对象,第二个传true可以自动刷新
写数据特殊方法
void println() 直接输出一个换行void print(任意类型) 输出任意数据void println(任意类型)  输出任意数据后换行

8.2 PrintWriter字符打印流

构造方法
PrintWriter(File file) 传一个文件对象PrintWriter(String fileName)  传一个文件名PrintWriter(OutputStream out) 传一个输出流对象PrintWriter(OutputStream out, boolean autoFlush) 传一个输出流对象,第二个传true可以自动刷新
写数据特殊方法
void println() 直接输出一个换行void print(任意类型) 输出任意数据void println(任意类型)  输出任意数据后换行

9. Properties类

本质是一个Map集合,集合中唯一一个直接和IO有关的集合,可以直接从文件中读写数据
构造方法
public Properties() :创建一个空的属性列表。
存取方法
public Object setProperty(String key, String value) : 保存一对属性。public String getProperty(String key) :使用此属性列表中指定的键搜索属性值。public Set
stringPropertyNames() :所有键的名称的集合
与流相关的方法
public void load(InputStream inStream) : 从字节输入流中读取键值对

10. ResourceBundle工具类

一个工具类,用它来操作以.properties结尾的文件非常方便
创建对象的方法
static ResourceBundle getBundle(String baseName) 获取src下的资源文件
读取配置文件方法
String getString(String key) 通过键获取值

11. commons-io工具包

apache提供有关IO操作的类库,可以提高IO功能开发的效率
流的操作
1. public static int copy(InputStream in, OutputStream out); 把input输入流中的内容拷贝到output输出流中,返回拷贝的字节个数(适合文件大小为2GB以下)2. public static long copyLarge(InputStream in, OutputStream out);把input输入流中的内容拷贝到output输出流中,返回拷贝的字节个数(适合文件大小为2GB以上)
文件的操作
1. public static void copyFileToDirectory(final File srcFile, final File destFile) //复制文件到另外一个目录下。2. public static void copyDirectoryToDirectory( file1 , file2 );//复制file1目录到file2位置。

转载地址:http://zvtwn.baihongyu.com/

你可能感兴趣的文章
vue+element-ui多选和按钮绑定并将值传往后端
查看>>
springboot+mybatis按条件查询分页问题
查看>>
springboot+vue+element-ui实现图文上传(表单文字和图片一起入库)
查看>>
springboot+vue+element-ui下载excel模板(静态文件)
查看>>
vue项目打包部署后二级页面刷新变成404问题
查看>>
springboot在Windows服务器部署做成服务
查看>>
vue的页面刷新和单独组件的销毁重建
查看>>
vue+ckplayer+rtmp
查看>>
vue+pg库+openlayer5+geoserver+离线地图瓦片构建gis地图+地图撒点+点击点出现地图弹框(***完整流程***)
查看>>
openlayer5实现地图撒点,点击弹框效果
查看>>
vscode炫酷写代码插件Power Mode
查看>>
实现字符串倒叙
查看>>
node中引入其他ejs文件,并给引入文件传参,类似iframe
查看>>
ejs中在页面上使用if-else
查看>>
moment中时间为12小时制,dayjs中时间为12小时制
查看>>
vue解决打包后文件过大的问题-使用压缩插件打包后压缩文件-compression-webpack-plugin
查看>>
爆料称字节跳动实习生删库
查看>>
无缝滚动lunbot
查看>>
如何将Map集合写入txt文件中
查看>>
springboot参数检验,Assert使用
查看>>