Java中的文件操作

文件操作分类

1.文件系统相关的操作

File介绍

我们如果要Java对文件进行系统相关操作就离不开File这个类,接下来就来介绍一下吧

构造方法

在这里插入图片描述

方法

在这里插入图片描述

实践

在这里插入图片描述

首先我们先new一个实例,可以看到File这个类在Java.io.File这个包中,“./”表示当前目录
注:File构造方法中传入的路径不要求该文件存在
在这里插入图片描述
这个是项目存在的文件夹
在这里插入图片描述
可以看到在这个文件夹里并没有txt.txt文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为文件不存在所以这里都是false
接下来我们来创建一个文件
在这里插入图片描述
这里要调用createNewFile();来创建一个文件,用这个方法的时候要去处理异常
可以看到当我们运行之后文件夹里就多出了“txt.txt”这个文件
如果我们此时在点一次运行文件就不会被创建了因为文件已经存在了会返回false

接下来来删除一个文件
在这里插入图片描述
我们调用delete()这个方法就行,可以就看到我们刚才创建的文件已经被删除了

下面我们来创建一个目录
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
可以看到创建了一个文件夹
在这里插入图片描述
“bbb”这个文件夹在aaa文件夹里
关于File里的方法就先介绍这么多其他的大家可以自己试试

文件内容相关操作

上面介绍的都是如何新增或者删除一个文件。接下来来介绍如何修改或读取一个文文件里的内容

InputStream 的介绍

这是一个抽象类在这里插入图片描述
在这个类中有read()方法可以读取文件里的内容
但这是个抽象类不能实例化对象所以我们可以用它的子类来操作—FileInputStream

FileInputStream介绍

在这里插入图片描述

可以看到这个类继承InputStream所以我们可以用这个来操作文件
在这里插入图片描述
在这里插入图片描述

因为字符在存储的时候是按照 ASCII 码来存储的所以我们看到的是数字。如果想看到字符把他们强转成char就行了
注意:以上代码存在一些问题;因为涉及文件操作所以到我们使用完一定要进行关闭,避免资源泄露,所以我们要改进一下代码
在这里插入图片描述
最后一定要有关闭操作,但这种方式仍然是不安全的,如果之前某个代码出现异常或者有return操作就有可能执行不到关闭这行代码,所以我们要使用try,finally来改进
在这里插入图片描述
这样就行了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们点开 InputStream这个类可以看见有三个read()函数,第一个函数是无参的一次读一个字节返回的值是读到这个字节对应的内容,下一个方法是带参数的,我们要往里面传进一个字节数组,这个方法每次会读若干字节,把读的内容放到你传进的数组里返回值是读到字节数,第三个方法就是,你自己去指定存入你传进数组位置

接下来我们来介绍如何往文件里写东西

OutputStream的介绍

这个和InpSteam对应,这个同样也是一个抽象类我们不能拿它直接来实例,要用它的子类来进行操作
在这里插入图片描述
这里有个write方法因此我们可以利用继承它的子类来进行写的操作—FileOutputStream
在这里插入图片描述
可以看到一共有三个方法,我们传进的数字是字符所对应的 ASCII 码,例如:
在这里插入图片描述

我传进去的是97,对应到文件就是字符a

以上的IntputStream和 OutputStream我们一般把它们成为字节流,接下来来介绍下字符流,就是以字符为单位进行读写

Reader介绍

在这里插入图片描述
这也是个抽象类对应的子类–FileReader
和之前的字节流 InputStream用法类似就是单位从字节变成字符了,因此不过多介绍了
在这里插入图片描述

Writer介绍

这个和之前OutputStream类似

在这里插入图片描述
同样这也是一个抽象类

利用Scanner来读文件

代码示例:

import java.io.*;
import java.util.Scanner;


public class k {
    public static void main(String[] args) throws IOException {

        try (  InputStream aa = new FileInputStream("./txt.txt") ){

            try (Scanner scanner = new Scanner(aa) ){


            while (scanner.hasNext()) {
                String s = scanner.next();
                System.out.println(s);
            }
        }


        }
        
    }
    
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值