ZJU-Java Advanced Notes Woche 7 (Eingabe und Ausgabe)

  1. Stream ist die Art und Weise, wie Java Ein- und Ausgaben verarbeitet
  2. Die Basisklasse des Streams
    InputStream
    OutputStream in Byteform
public class Main {
    
    
    public static void main(String[] args){
    
    
        System.out.println("请输入:");
        //定义一个字节数组
        byte[] buffer = new byte[1024];
        try {
    
    
            int len = System.in.read(buffer);
            String s = new String(buffer,0,len);
            System.out.println("读到了"+len+"字节");//回车也算一个,只不过看不见
            System.out.println(s);
            System.out.println("s的长度是"+s.length());
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
}
输出
请输入:
画眉深浅入时无
读到了22字节
画眉深浅入时无

s的长度是8

  1. Direktes Lesen und Schreiben von Dateien - Dateistream-Basisklasse FileInputStream
    FileOutputStream
public class Main {
    
    
    public static void main(String[] args){
    
    
        System.out.println("请输入:");
        //定义一个字节数组
        byte[] buffer = new byte[1024];
        try {
    
    
            System.in.read(buffer);
            FileOutputStream out = new FileOutputStream("a.dat");
            out.write(buffer);
            out.close();
            
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
}
输出
控制台无输出,产生了一个a.dat文件
  1. Filter-Stream
    Die Streams, die wir zuvor gesehen haben, können nur ein einzelnes Byte verarbeiten,
    aber wenn es um ein Int mit vier Bytes geht?

Filterfluss - Fügen Sie eine Ebene des Filterflusses auf der Grundlage des vorhandenen Dateiflusses hinzu

public class Main {
    
    
    public static void main(String[] args){
    
    
        //定义一个字节数组
        byte[] buffer = new byte[1024];
        try {
    
    
            //写文件
            DataOutputStream out = new DataOutputStream(//处理基本数据类型
                                        new BufferedOutputStream(//起缓冲作用
                                                new FileOutputStream("b.dat")));
            int i = 0xcafebabe;//十六进制(使用十进制也仍然会以十六进制存储)
            out.writeInt(i);
            out.close();
            //再读文件(以十进制输出,给人来看)
            DataInputStream in = new DataInputStream(
                    new BufferedInputStream(
                            new FileInputStream("b.dat")));
            int j = in.readInt();
            System.out.println(j);
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
}
  1. Die grundlegenden Textverarbeitungsklassen
    InputStream / OutputStream können nur Bytes verarbeiten.
    DataInputStream / DataOutputStream kann nur grundlegende Datentypen verarbeiten

Binärdaten übernehmen DataInputStream / DataOutputStream und
Textdaten übernehmen Reader / Writer
( Daten können nicht direkt lesen, sie benötigen Werkzeugsoftware und a.txt-Personen können direkt lesen).

public class Main {
    
    
    public static void main(String[] args){
    
    
        try {
    
    
            //写文件
            PrintWriter out = new PrintWriter(
                                    new BufferedWriter(//起缓冲作用
                                            new OutputStreamWriter(//起桥梁作用
                                                    new FileOutputStream("b.txt"))));
            int i = 123456;
            out.println(i);
            out.close();
            //读源代码文件
            BufferedReader in = new BufferedReader(
                    new InputStreamReader(
                            new FileInputStream("src/IOstream/Main.java")));
            String line;
            //当没有读到文件末尾
            while((line = in.readLine())!= null){
    
    
                System.out.println(line);
            }
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
}
  1. PrintWriter steuert das Ausgabeformat
    ("Format", ...);
     printf ("Format", ...); // Es ist im Grunde dasselbe wie C
     print (verschiedene Grundtypen);
     println (verschiedene Grundtypen);

Erstellen Sie ein Scannerobjekt in InputStream oder Reader, mit dem
verschiedene im Text ausgedrückte Grundtypen aus dem Text im
nächsten Stream analysiert werden können ... ()

So wählen Sie eine Klasse zum Lesen von Daten aus

Fügen Sie hier eine Bildbeschreibung ein

Ich denke du magst

Origin blog.csdn.net/weixin_44997802/article/details/108572651
Empfohlen
Rangfolge