对文件的读写

文件操作

  • 使用 File 类操作文件
  • 使用 FileInputStream 类读写文件
  • 使用 FileOutputStream 类写文本文件

1、操作文件或目录属性
File 对象即可表示文件,也可表示目录,常利用 File 对象来对文件或目录进行基本操作
File类的常用方法

方法说明
boolean exists()测试文件是否存在
String getAbsolutePath()返回此对象表示的文件的绝对路径名
String getParent()返回此File对象的路径名的上一级,如果路径名没有上一级,则返回 null
String getName()返回对象表示的文件名称
boolean delete()删除此对象指定的文件
boolean isDirectory()测试此 File 对象表示的是否是目录
boolean isFile()测试此 File 对象表示的是否是文件
boolean mkdir()创建一个目录,它的路径名由当前的 File 对象指定
boolean mkdirs()创建 File 对象指定的所有目录
boolean createNewFile()创建空文件,不创建文件夹

2、使用 File 类操作文件和目录属性的步骤
1.引入 File 类

import java.io.File;

2.构造一个文件对象

File file=new File("a.txt");

3.利用 File 类的方法访问文件或文件目录的属性

file.exists();						//判断文件或目录是否存在
file.isFile();						//判断是否是文件
file.isDirectory();					//判断是否是目录
file.getName();						//获取文件或目录名称
file.getPath();						//获取文件或目录的路径
file.getAbsolutePath();				//获取文件或目录的绝对路径
file.lastModified();				//获取文件或目录的最后修改日期
file.length();						//获取文件或目录的大小,单位为字节

实际代码演示

public static void main(String[] args) {
        File f=new File("E:/a.txt");
        System.out.println(f.isFile());//是不是文件
        System.out.println(f.isDirectory());//是不是目录
        System.out.println(f.length());//里面内容长度
        System.out.println(f.exists());//文件是否存在
        File file=new File("E:/abc/def/ggg/a.txt");//绝对路径
        System.out.println(file.exists());
        file.getParentFile().mkdirs();//创建文件夹
        try {
            file.createNewFile();//添加文件
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(file.exists());
        file.delete();//删除最后一级文件
    }

请读者自行尝试运行,对文件及文件夹进行操作,以提升知识掌握

Java流

前面介绍的 File 类只能对文件或文件夹进行操作,不能对文件里面的内容进行操作;下面就来介绍通过 Java 中的流来对文件里面的内容进行读取和写入操作
流是指一连串的字符;流分为输入流和输出流;输入/输出流是相对于计算机内存来说的,如果输入到内存,则称为输入流;如果从内存中输出则称为输出流
Java 中的输出流主要由 OupputStream 和 Write 作为基础类;输入流则主要由 InputStream 和 Reader 作为基础类
在这里插入图片描述

1、使用 FileInputStream 读文件的流程

FileInputStream 称为文件输入流,它是字节输入流 InputStream 抽象类的一个子类,它的作用是将文件中的数据输入到内部存储器(内存)中,可以利用它来读取文本中的数据

  • FileInputStream 对象和 String 结果对象声明
  • 创建 FileInputStream 对象(文件路径或 File 对象)
  • 读单字节或整个读到 byte 数组中
  • 转成字符串
  • 关闭 FileInputStream 流
  • 返回结果字符串

具体应用实例
使用 FileInputStream 读文件

public class TestFileInputStream {
    public static void main(String[] args) throws IOException {
        String s=read("E:/myDoc/hellow.txt");
        System.out.println("文件内容是:");
        System.out.println(s);
    }

    public static String read(String path){
        FileInputStream fis=null;
        String str=null;
        try {
            fis=new FileInputStream(path);
            byte[]b=new byte[fis.available()];
            fis.read(b);
            str=new String(b);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return str;
    }
}

注意本地计算机必须含有需要读取的文件,否则会报错,找不到系统文件,运行结果如下
在这里插入图片描述
2、使用 FileOutputStream 写文件的流程

  • File对象装载文件路径
  • 判断文件附加目录是否存在,不存在则创建
  • 声明 FileOutputStream 对象
  • 创建 FileOutputStream 对象( File 对象,是否追加)
  • 把要写的字符串转成 byte 数组,并写入输出流
  • 关闭 FileOutputStream 流

具体应用实例
使用 FileOutputStream 写文件

public class TestFileOutputStream {
    public static void main(String[] args) {
        String str="大家好\r\n我叫小刘\r\n我是一个典型的富二代\r\n我每天除了吃就是睡";
        write(str,"E:/text/abc.text",true);
    }

    public static String write(String str,String path,boolean isAppend){
        File f=new File(path);
        if (f.getParentFile().exists()){
            f.getParentFile().mkdirs();
        }
        FileOutputStream fos=null;
        try {
            fos=new FileOutputStream(f,isAppend);
            byte[]b=str.getBytes();
            fos.write(b);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return str;
    }
}

运行后打开 E 盘会发现多出一个文件夹,其中包含 abc.txt 文件,打开该文件,结果如下图所示
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值