java io流输出_输入输出流 ——JavaIO流

输入输出流

——JavaIO流

IO的概念

Java IO即Java 输入输出系统。

I(Input)/O(OutPut) 数据的流动

流的分类

1.输入

字节输入流:InPutStream

字符输入流:reader

2.输出

字节输出流:OutPutStream

字符输出流:writer

File类

文件和目录路径名的抽象表示形式。

通过代码对文件进行操作。

File类的构造方法

File(String pathname)

根据一个路径得到File对象

File(String parent, String child)

根据一个目录和一个子文件/目录得到File对象

File(File parent, String child)

根据一个父File对象和一个子文件/目录得到File对象

File类的创建功能

单级文件夹创建

boolean mkdir()

创建文件夹,如果存在这样的文件夹,就不创建了,路径不存在返回flase

多级文件夹创建

boolean mkdirs()

创建文件夹,如果父文件夹不存在,会帮你创建出来

创建文件

boolean createNewFile()

创建文件,路径不存在抛出异常,如果存在这样的文件,就不创建了

File类的获取功能

String getAbsolutePath()

获取文件的绝对路径

File getAbsoluteFile()

获取文件的绝对路径

String getPath()

获取文件的相对路径

String getName()

获取名称

String[] list()

获取指定目录下的所有文件或者文件夹的名称数组

File[] listFiles()

获取指定目录下的所有文件或者文件夹的File数组

File[] listRoots()

获取电脑中的盘符

String[] list (FilenameFilter  filter)

获取指定目录下被FilenameFilter筛选后的文件,返回String类型数组

路径: 绝对路径:带盘符的

相对路径:默认就是当前目录 ./:代表当前目录 ../:上一层目录

File类的判断功能

boolean  exists()

判断路径表示的文件或者文件夹是否存在

boolean  isDirectory()

判断当是否是一个文件夹

boolean  isFile()

判断当前是否是一个文件

boolean isHidden()

测试此抽象路径名指定的文件是否是一个隐藏文件。

File类的删除功能

boolean delete()

若是文件就直接删除,若是文件夹则必须是空文件夹

例:

delFileOrDir(new File("F:/xx"));

public static void delFileOrDir(File file) {

if (file.isDirectory()) {//判断有无内容(文件夹)

File[] listFiles = file.listFiles();

for (File file2 : listFiles) {

delFileOrDir(file2);//递归调用自己

}

}

file.delete();

}

递归

递归:本质上就是方法自己调用自己

注意: 1.每一次方法的执行都是独立

2.方法出口

案例:

斐波拉契数列,假设有函数f(x)且f(0)=0、f(1)=1,第x个值公式为f(x)=f(x-1)+f(x-2),根据以上给出的条件实现x为任意数时的值的代码实现

public static int f(int x){

if (x == 0) {

return 0;

}else if (x == 1) {

return 1;

}

return f(x-1)+f(x-2);

}

文件的过滤

public interface FilenameFilter

实现此接口的类实例可用于过滤器文件名。

其中的方法:

boolean accept(File dir,String name)

测试指定文件是否应该包含在某一文件列表中。

参数:

dir - 被找到的文件所在的目录。

name - 文件的名称。

示例:

File file = new File("F:/xx");

String[] list = file.list(new MyFiler());

System.out.println(Arrays.toString(list));

class MyFiler implements FilenameFilter{

public boolean accept(File dir, String name) {

return name.endsWith(".doc");

}

}

IO流分类

7476e49e15a304de8ec44134b68d0f5f.png

整体API分类:

29029551d772d6952c1edcf333cf306b.png

按照功能进行API分类:

9ac0bcce60d751888ba69b3013510858.png

对文件内容操作

字节流

字节输入流【FileInputStream】

字节输入流读取文件的实现步骤:

关联实体文件,创建FileInputStream对象

调用read方法,返回值:文件末尾 -1

关闭输入流【close】,先开的后关,后开的先关

字节输出流【FileOutputStream】

字节流输出数据的代码实现步骤:

关联实体文件,创建输出流对象

1.文件不存在:自动创建2.路径不存在:报错true:追加false:覆盖

调用write方法

关闭输出流

字符流

字符输入流【FileReader】

字符输入流读取文件的实现步骤:

关联实体文件,创建FileInputStream对象

调用read方法,返回值:文件末尾 -1

关闭输入流【close】,先开的后关,后开的先关

字符输出流【FileWriter】

字节流输出数据的代码实现步骤:

关联实体文件,创建输出流对象

1.文件不存在:自动创建2.路径不存在:报错true:追加false:覆盖

调用write方法

关闭输出流

转化流

使用的场景

在原来的系统上进行升级的时候

字节输入流转换为字符输入流【InputStreamReader】

字节流转成字符流的步骤:

准备一个字节流

将字节流转成字符流输出

关闭流

字节输出流转字符输出流【OutputStreamWriter】

准备一个字符流

将字符流转换为字节流

关闭流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值