I/O编程

本文详细介绍了Java中的I/O编程,包括File类的基本和深入操作,如创建、删除、获取文件信息,以及字节流与字符流的使用,如OutputStream、InputStream、Writer和Reader。此外,还涉及到了内存操作流和对象序列化的概念。
摘要由CSDN通过智能技术生成


学习目标

1、掌握Java.io包中类的继承关系。
2、掌握File类的使用,并且可以通过File类进行文件的创造、删除、文件夹的列表等操作。
3、掌握字节流和字符流操作文件内容以及字节流与字符流的区别。
4、掌握内存流、管道流、打印流、扫描流的使用。
5、对象序列化的作用以及Serializable接口,transient关键字的使用。
6、RandomAccessFile随机读/写操作的操作的操作理解原来与使用。
7、System.out、System.err、System.in                                

一、File文件操作

java.io.File 类是一个与文件本身操作有关的类,此类可以实现文件的,
创建、删除、重命名、取得文件大小、修改日期等常见的系统文件操作。

File 类基本使用

如果使用FIle类则必须提供完整的文件操作路径,通过File类的构造方法完成,可以进行文件的创建与删除。

							File类文件基本操作方法
方法 类型 描述
public File (String pathname) 构造 给定一个要操作文件的完整路径
public File (File parent,String child) 构造 给定要操作文件的父路径和子文件名称
public boolean creatNewFile() throws IOException 普通 创建文件
public boolean delete() 普通 删除文件
public boolean exists() 普通 判断路径是否存在

范例:使用File类实现文件的创建与删除

import java.io.File;

/**
 * @ClassName : JavaIODemo  //类名
 * @Description : 使用File类实现文件的创建与删除 //描述
 * @Author : ***  //作者
 * @Date: 2021-07-24 10:01 //日期
 */

public class JavaIODemo {
   
    public static void main(String[] args) throws Exception{
   
        File file = new File("D:\\IO.txt");  //文件创建路径
        if (file.exists()){
       //判断文件是否存在
            file.delete();    //删除文件
        }else{
   
            System.out.println(file.createNewFile());  //创建新的文件
        }
    }
}
程序输出结果:
true

File类深入操作

为了解决不同操作系统的路径分隔符问题,在java.io.File类中提供了一个路径分隔符

路径分隔符:public static final String separator
定义方式: 
File file1 = new File("D:"+File.separator+"io.txt");

                               File 类父路径操作方法
方法 类型 描述
public File getParentFile() 普通 找到一个指定路径的父路径
public boolean mkdirs() 普通 创建指定目录

范例:创建带目录的文件

import java.io.File;

/**
 * @ClassName : JavaIODemo1  //类名
 * @Description : 创建带目录的文件 //描述
 * @Author : ***  //作者
 * @Date: 2021-07-24 10:39 //日期
 */

public class JavaIODemo1 {
   
    public static void main(String[] args) throws Exception{
   
        File file = new File("D:"+File.separator+"hello"+"IO1.txt");
        if (!file.getParentFile().exists()){
        //父路径不存在
            file.getParentFile().mkdirs();      //创建父路径
        }
        if (file.exists()){
       //文件存在
            file.delete();     //文件删除
        }else {
                   //文件不存在
            System.out.println(file.createNewFile());  //创建新的文件
        }
    }
}
程序输出结果:
true

获取文件信息

							获取文件元数据信息的方法
方法 类型 描述
public boolean canRead() 普通 文件是否能读
public boolean canWrite() 普通 文件是否能写
public boolean canExecute() 普通 文件是否能执行
public long length() 普通 获取文件大小
public long lastModified() 普通 获得最后一次修改日期
public boolean isDirecttory() 普通 是否是目录
public boolean isFile() 普通 是否是文件
public boolean isHidden() 普通 是否隐藏
public File[] listFiles() 普通 列出目录中的全部文件信息

范例:获取文件基础信息

public class JavaIODemo2 {
   
    public static void main(String[] args) {
   
        File file = new File("D:"+File.separator+"adc.jpg");
        System.out.println("文件是否能读:"+file.canRead());
        System.out.println("文件是否能写:"+file.canWrite());
        System.out.println("文件大小:"+MathUtil1.round(file.length()/(double) 1024 /1024,2)+"M");
        System.out.println("最后一次修改日期:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(file.lastModified())));
        System.out.println("是否是目录:"+file.isFile());
    }
}
class MathUtil1{
   
    private MathUtil1(){
   }
    public static double round(double num,int scale){
   
        return Math.round(Math.pow(10,scale)*num)/Math.pow(10,scale);
    }
}
程序输出结果:
文件是否能读:false
文件是否能写:false
文件大小:0.0M
最后一次修改日期:1970-01-01 08:00:00
是否是目录:false

范例:列出目录组成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值