Java初学笔记-----File、IO

目录

一、Flie:

File表示文件信息

二、IO:

InputStream与OutputStream

文件流:文件流是用来链接我们的程序与文件之间的"管道",用来读写文件数据的流。

文件输出流

构造器


一、Flie:

  • java.io.file用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录。

  • File类只用于表示文件(目录)的信息(名称、大小等),不能对文件的内容进行访问。

  • 构造器:

    • File(String pathName)

    • 通过将给定路径名字符串转换成抽象路径名来创建一个新 File实例

    • 抽象路径应尽量使用相对路径,并且目录的层级分隔符不要直接写" / "或" \ ",应使用File.separator这个常量表示,以避免不同系统带来的差异。

File表示文件信息

  • String getName():返回当前File对象表示的文件或目录的名字

  • -length():返回一个long值,表示占用的磁盘空间,单位为字节。

    //创建file对象
    File file = new File("./demo.txt");
    //获取名字
    String name = file.getName();
    System.out.println(name);
    //获取File表示的文件的长度(单位是字节)
    long len = file.length();
    System.out.println("占用的字节数:"+len);
  • -canRead():File表示的文件或目录是否可读

  • -canWrite():File表示的文件或目录是否可写

  • -isHidden():File表示的文件或目录是否为隐藏的

    boolean cr = file.canRead();
    boolean cw = file.canWrite();
    boolean ih = file.isHidden();
    System.out.println("可读:"+cr);
    System.out.println("可写:"+cw);
    System.out.println("是否隐藏:"+ih);
  • -exists():判断File表示的文件或目录是否真实存在。true:存在 false:不存在

  • -createNewFile():创建一个新文件,如果指定的文件所在的目录不存在会抛出异常java.io.FileNotFoundException

  • -delete():删除当前File对象表示的文件

  • -mkdir() / -mkdirs():创建一个目录 多个目录:并且会将所有不存在的父目录一同创建出来,推荐使用。

    package file;
    import java.io.File;
    /**
     * 创建一个目录/多级目录
     */
    public class MkDirDemo {
        public static void main(String[] args) {
        //在当前项目目录下新建一个名为:demo的目录
            File dir = new File("demo");
            /*
                boolean exists()
                判断当前File对象表示的文件或目录是否已经存在,如果已经存在则返回true
    
                boolean mkdir()
                将当前File对象表示的目录创建出来,当且仅当目录成功创建时返回true
             */
            if(!dir.exists()) {
                dir.mkdir();
                System.out.println("该目录已创建");
            }else{
                System.out.println("该目录已存在");
            }
            
            //在当前目录下新建:a/b/c/d/e/f目录
            //当前dir表达式的是f目录,只不过f是在前面对应的里面
            File dir = new File("a/b/c/d/e/f");
            if(dir.exists()){
                System.out.println("该目录已存在!");
            }else{
                /*
                    创建失败
                    原因:mkdir()方法在创建目录时要求该目录所在的父目录必须真实存在
                        否则创建失败
                 */
                //dir.mkdir();
                /*
                    mkdirs()方法在创建目录时会自动将不存在的父目录一同创建出来
                    实际开发中推荐用这个方法创建目录
                 */
                dir.mkdirs();
                System.out.println("该目录已创建!");
        }
    }

 

  • -listFiles():获取File表示的目录中的所有子项

  • -listFiles(FileFilter filter):获取File表示的目录中满足filter过滤器要求的所有子项

  • -isFile():判断当前File表示的是否为一个文件。

  • -isDirectory():判断当前File表示的是否为一个目录

二、IO:

  • 输入:Input

    • 输入是一个从外界进去到程序的方向,"读取"外界数据室,使用输入------输入是用来读取数据的

  • 输出:Output

    • 输出是一个从外界进去到程序的方向,"写出"外界数据室,使用输出------输出是用来写出数据的

InputStream与OutputStream

  • java.io.InputStream:所有的字节输入流的超类,其中定义类读取数据的方法,因此将来不管读取的是什么设备(链接该设备的流)都有这些读取的方法 因此我们可以用相同的方法读取不同设备中的数据

    int read():读取一个字节,以int形式返回,该int值的”低八位”有效,若返回值为-1则表示EOF

    int read(byte[ ] data):尝试最多读取给定数组的length个字节并存入该数组,返回值为实际读取到的字节量

  • java.io.OutputStraeam:所有字节输出流的超类,其中定义了写出数据的方法

    void write(int d):写出一个字节,写的事给定的int的"低八位"

    void write(byte[ ] data):将给定的字节数组中的鄋字节全部写出

    void write(byte[ ] data,int offset,int len):将给定的字节数组中从offset处开始的连续len个字节写出

文件流:文件流是用来链接我们的程序与文件之间的"管道",用来读写文件数据的流。

  • 文件输入流java.io.FileInputStream:读取文件数据的流

  • 文件输出流java.io.FileOutputStream:写入文件数据的流

  • 文件流是继承自InputStream和OutputStream

文件输出流:

java.io.FileOutputStream 使用文件输出流向文件中写入数据

构造器:

FileOutputStream(String path) 创建文件输出流对指定的path路径表示的文件进行写操作,如果该文件不存在则将其创建出来

FileOutputStream(File file) 创建文件输出流对指定的file对象表示的文件进行写操作,如果该文件不存在则将其创建出来


新学java能力有限,如有错误欢迎指正哟   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值