Dateiklasse, InputStream, OutputStream-Nutzung

Inhaltsverzeichnis

1.Dateiklasse

Operationen an Namen und Pfaden

Über Schöpfungs- und Zerstörungsoperationen

Ordner erstellen (mehrstufige Verzeichnisse)

 Eingabestrom

Der erste Typ: Byte-Stream-Lesen

Der zweite Typ: Lesen des Zeichenstroms (Reader)

 Ausgabestrom 

Der erste Typ: Byte-Stream-Schreiben

 Die zweite Methode: Zeichenstromeingabe


1.Dateiklasse

Datei übersetzt als „Datei“

Dann sind die Operationen der File-Klasse tatsächlich alle Operationen an Dateien.

Operationen an Namen und Pfaden

    public static void main(String[] args) {
//虚拟一个名字叫做test.txt的文件,但这一步只是虚拟的,还没有创建
        File file = new File("./test.txt");
        System.out.println(file.getParent());//获取这个文件的父目录的路径
        System.out.println(file.getName());//获取这个文件的名字
        System.out.println(file.getPath());//获取这个文件的相对路径
        System.out.println(file.getAbsolutePath());//获取这个文件的绝对路径
    }

Über Schöpfungs- und Zerstörungsoperationen

    public static void main(String[] args) throws IOException {
//拟创建一个叫做Test.txt的文件,但还没创建
        File file = new File("./Test.txt");
//真的在计算机的当前目录创建了这个文件
        file.createNewFile();
        System.out.println(file.isFile());//判断是否是普通文件
        System.out.println(file.isDirectory());//判断是否是目录文件
        System.out.println(file.exists());//判断这个文件是否存在
        System.out.println(file.delete());//删除这个文件
        System.out.println(file.exists());
    }

Ordner erstellen (mehrstufige Verzeichnisse)

    public static void main(String[] args) {
        File file = new File("./hello1");
        File file2 = new File("./hello2/6666");
        file.mkdir();//只能创建一级目录
        file2.mkdirs();//能创建多级目录
    }

 Eingabestrom

Lesen Sie einfach die Daten aus der Datei

Im Allgemeinen gibt es zwei Arten zu lesen

Der erste Typ: Byte-Stream-Lesen

(Die Grundeinheit des Lesens und Schreibens sind Bytes)

Grundlegende Methode: read(): Liest ein Datenbyte und gibt -1 zurück, um anzuzeigen, dass der Lesevorgang abgeschlossen ist.

verwenden

Wir erstellen zunächst eine Datei mit dem Namen hello.txt auf dem Laufwerk D und geben dann hallo ein

 

    public static void main(String[] args) throws FileNotFoundException {
        InputStream inputStream = new FileInputStream("D:/hello.txt");//这里输入读取的文件地址,如果输入错误会报错无法读取
        while(true){
            try {
                int ret = inputStream.read();//如果全部读取完毕返回-1
                if(ret == -1){
                    break;
                }
                System.out.println(ret);

            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }

    }

Die Ausgabe ist der entsprechende ASCII-Code~

 

Der zweite Typ:  Lesen des Zeichenstroms (Reader)

Das Funktionsprinzip ist das gleiche wie beim Byte-Stream-Lesen. Der einzige Unterschied besteht darin, dass Zeichen auf dem Bildschirm anstelle von Zahlen angezeigt werden, die der Ask-Tabelle entsprechen.

    public static void main(String[] args) throws FileNotFoundException {
        Reader reader = new FileReader("D:/hello.txt");
        while(true){
            try {
                int ret = reader.read();
                if(ret == -1){
                    break;
                }
                System.out.println((char)ret);

            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }

    }

 Ausgabestrom 

Schreiben Sie einfach Daten in die Datei

Generell gibt es zwei Möglichkeiten zu schreiben

Der erste Typ: Byte-Stream-Schreiben

Grundlegende Methode: write() 

    public static void main(String[] args) throws FileNotFoundException {
        OutputStream outputStream = new FileOutputStream("d:/hello.txt");
        try {
//注意,这里的98,99,100是ask码表对应的数字的字符,不是数字98,99,100
            outputStream.write(98);
            outputStream.write(99);
            outputStream.write(100);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

 Die zweite Methode: Zeichenstromeingabe

Achten Sie bei dieser Methode darauf, am Ende die Flush-Methode zu verwenden.

Rufen Sie den im Speicher gespeicherten Bytestream ab

Ansonsten passiert zwar nichts, aber das Programm meldet trotzdem keinen Fehler.

    public static void main(String[] args) throws IOException {
        Writer writer = new FileWriter("d:/hello2.txt");
        writer.write("hello");
//一定要加上flush!!!!!
//一定要加上flush!!!!!
//一定要加上flush!!!!!
        writer.flush();
    }

 

Supongo que te gusta

Origin blog.csdn.net/qq_62718027/article/details/131351999
Recomendado
Clasificación