Méthodes associées aux classes de fichiers, aux flux d'octets et aux flux de caractères dans le flux IO en Java

Un, classe de fichier

1. Utilisez la récursivité pour sortir tous les fichiers d'un dossier et tous les fichiers des sous-dossiers.

Le code est le suivant (exemple):

package com;


import org.junit.Test;

import java.io.File;

public class Test3 {
    
    
    @Test
    public void test3(){
    
    
        File f= new File("D:\\新建文件夹\\day20-IO\\笔记");
        File[] files=f.listFiles();
        show(files);
    }
    public void show(File[] files){
    
    
        for (File file :files){
    
    
            if (file.isDirectory()){
    
    
                System.out.println(file.getName()+": 是一个文件夹");
                File[] imgs = file.listFiles();
                show(imgs);
            }else {
    
    
                System.out.println(file.getName()+":是一个文件");
            }
        }
    }
}

Insérez la description de l'image ici

Deux flux d'octets

1. Flux d'entrée d'octets (lire un octet à la fois)

public static void main(String[] args)  throws Exception {
    
    
        //绝对路径
        File f1 = new File("D:\\java培训\\java-day20\\src\\a.txt");
        System.out.println(f1.exists());
        //相对路径
        File f2 = new File("src\\a.txt");
        System.out.println(f2.exists());
        //1.构建一条通往文件f2多的管道--流对象
        FileInputStream fis = new FileInputStream(f2);
        //2.调用方法
        int l=fis.available();
        for (int i = 0; i < l; i++) {
    
    
            System.out.println(fis.read());
        }
        //关闭资源
        fis.close();
    }

Insérez la description de l'image ici

2. Flux d'entrée d'octets (lecture de plusieurs octets à la fois)

public static void main(String[] args)  throws Exception {
    
    
		 //相对路径
        File f1 = new File("src\\a.txt");
        System.out.println(f1.length());
        //1.构建一条通向文件f1的管道--流对象
        FileInputStream fis = new FileInputStream(f1);
        //2.调用方法--根据文件的字节长度,去构建一个相同长度的数组
        byte[] bs = new byte[fis.available()];
        //读取到文件中的字节数据,存入数组中,返回读到的实际字节个数
        int r=fis.read(bs);
        int r2=fis.read(bs);
        System.out.println(Arrays.toString(bs));
        System.out.println(r);
        System.out.println(r2);
        //关闭资源
        fis.close();
 }

Insérez la description de l'image ici

3. Trois façons de lire et d'écrire

public static void main(String[] args)  throws Exception {
    
    
 FileInputStream fis = new FileInputStream("src\\a.txt");
        FileOutputStream os = new FileOutputStream("src\\b.txt");
        //方式1:
        while (fis.available()>0){
    
    
            os.write(fis.read());
        }
        //方式2:
        int l=fis.available();
        for (int i = 0; i < l; i++) {
    
    
            os.write(fis.read());
        }
        //方式3:
        int r=-1;
        while ((r=fis.read())!=-1){
    
    
            os.write(r);
        }
}

Trois, flux de caractères

1. Flux d'entrée de caractères

public static void main(String[] args)  throws Exception {
    
    
        FileReader fr = new FileReader("src\\1.txt");
        char[] c=new char[6];
        //方式一
        while (fr.read(c)!=-1){
    
    
            System.out.println(c);
        }
        //方式二
        while (fr.read(c,0,6)!=-1){
    
    
            System.out.println(c);
        }
        //方式三
        for (int i = 0; i < 4; i++) {
    
    
            for (int j = 0; j < 6; j++) {
    
    
                System.out.print((char) fr.read());
            }
            System.out.println();
        }
}

2. Flux de sortie de caractères

public static void main(String[] args)  throws Exception {
    
    
        FileWriter fw = new FileWriter("src\\test1.txt");
        String str="昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否,知否?应是绿肥红瘦。";
        fw.write(str);
        fw.flush();
        fw.close();
}

Pour résumer

Ce qui précède est le contenu lié à la classe File, aux méthodes de flux d'octets et de flux de caractères dans le flux IO, expliquant principalement leur utilisation et certaines méthodes.

Je suppose que tu aimes

Origine blog.csdn.net/StruggleBamboo/article/details/111997760
conseillé
Classement