java基础day08-File、递归、IO一

本文详细介绍了Java中File类的使用,包括创建File对象、判断文件属性、文件操作以及遍历文件夹。同时,深入探讨了IO流的概念,讲解了字节流的各类操作,如字节输入输出流的使用及文件拷贝,并讨论了资源释放的最佳实践,如try-catch-finally和try-with-resource。此外,还涵盖了字符流的读写方法。
摘要由CSDN通过智能技术生成

一、File类的使用


1.创建File对象

package com.itheima.d1_file;

import java.io.File;

/**
    目标:学会创建File对象定位操作系统的文件(文件 文件夹的)
 */
public class FileDemo {
    public static void main(String[] args) {
        // 1、创建File对象(指定了文件的路径)
        // 路径写法: D:\resources\xueshan.jpeg
        //          D:/resources/xueshan.jpeg
        //          File.separator
//        File f = new File("D:\\resources\\xueshan.jpeg");
//        File f = new File("D:/resources/xueshan.jpeg");
        File f = new File("D:" + File.separator+"resources"+ File.separator +"xueshan.jpeg");
        long size = f.length(); // 是文件的字节大小
        System.out.println(size);

        // 2、File创建对象,支持绝对路径 支持相对路径(重点)
        File f1 = new File("D:\\resources\\beauty.jpeg"); // 绝对路径
        System.out.println(f1.length());

        // 相对路径:一般定位模块中的文件的。 相对到工程下!!
        File f2 = new File("file-io-app/src/data.txt");
        System.out.println(f2.length());

        // 3、File创建对象 ,可以是文件也可以是文件夹
        File f3 = new File("D:\\resources");
        System.out.println(f3.exists()); // 判断这个路径是否存在,这个文件夹存在否

    }
}


2.常用方法:判断文件类型、获取文件信息

 

 


3.常用方法:创建文件、删除文件功能


4.常用方法:遍历文件夹

 


二、IO流:概述

package com.itheima.d3_charset;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

/**
     目标:学会自己进行文字的编码和解码,为以后可能用到的场景做准备。
 */
public class Test {
    public static void main(String[] args) throws Exception {
        // 1、编码:把文字转换成字节(使用指定的编码)
        String name = "abc我爱你中国";
        // byte[] bytes = name.getBytes(); // 以当前代码默认字符集进行编码 (UTF-8)
        byte[] bytes = name.getBytes("GBK"); // 指定编码
        System.out.println(bytes.length);
        System.out.println(Arrays.toString(bytes));

        // 2、解码:把字节转换成对应的中文形式(编码前 和 编码后的字符集必须一致,否则乱码 )
        // String rs = new String(bytes); // 默认的UTF-8
        String rs = new String(bytes, "GBK"); // 指定GBK解码
        System.out.println(rs);
    }
}

 

 


三、IO流:字节流

 

 

1.字节输入流:每次读取一个字节

package com.itheima.d4_byte_stream;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

/**
    目标:字节输入流的使用。

    IO流的体系:
                 字节流                                   字符流
        字节输入流            字节输出流               字符输入流        字符输出流
        InputStream          OutputStream           Reader           Writer  (抽象类)
        FileInputStream      FileOutputStream       FileReader       FileWrit  er(实现类,可以使用的)

    文件字节输入流:FileInputStream
        -- 作用:以内存为基准,把磁盘文件中的数据以字节的形式读取到内存中去。
                按照字节读文件数据到内存中。
        -- 构造器:
            public FileInputStream(File file):创建字节输入流管道与源文件对象接通
            public FileInputStream(String pathname):创建字节输入流管道与源文件路径接通。
        -- 方法:
            public int read(): 每次读取一个字节返回,读取完毕返回-1。

    小结:
        一个一个字节读取中文数据输出其实是被淘汰的,性能极差!
         一个一个字节读取中文数据输出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值