Heim  >  Artikel  >  Java  >  Informationen zu E/A-Streams in Java: Stream-Vererbungsbeziehungen, Verarbeitungsstreams und Konvertierungsstreams

Informationen zu E/A-Streams in Java: Stream-Vererbungsbeziehungen, Verarbeitungsstreams und Konvertierungsstreams

php是最好的语言
php是最好的语言Original
2018-08-04 14:29:241894Durchsuche

1. Die Vererbungsbeziehung von Streams sowie Byte-Streams und Zeichen-Streams.

2. Knotenströme FileOutputStream und FileInputStream und Verarbeitungsströme BufferedInputStream und BufferedOutputStream. Und der entsprechende FileOutputWriter, FileInputReader, BufferedInputReader, BufferedOutputWriter.

3. Konvertieren Sie die Streams InputStreamReader und OutputStreamWriter

1: Vererbungsbeziehung von Streams

Byte-Stream

Zeichenstrom

Verwendungsbereich von Zeichenstrom und Bytestrom: Der Bytestrom wird im Allgemeinen zum Verarbeiten von Bildern, Videos und PPT- und Word-Dateien verwendet. Zeichenströme werden im Allgemeinen zum Verarbeiten von Nur-Text-Dateien wie TXT-Dateien usw. verwendet. Byteströme können zum Verarbeiten von Nur-Text-Dateien verwendet werden, Zeichenströme können jedoch nicht zum Verarbeiten von Nicht-Text-Dateien wie Bildern und Videos verwendet werden.

Zwei: Verarbeitungsströme BufferedReader, BufferedWriter, BufferedInputStream

BufferedOutputsStream, alle müssen den Knotenstrom der oberen Ebene enthalten. Mit anderen Worten, der Verarbeitungsstrom basiert auf dem Knotenstrom. Der gepufferte Strom wird auch als gepufferter Strom bezeichnet. Der gepufferte Strom verarbeitet die Eingabe und Ausgabe von Dateien am schnellsten. Daher werden gepufferte Streams im Allgemeinen häufiger verwendet.

Im Folgenden finden Sie zwei einfache Beispiele für das Kopieren von Dateien:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

public class MycopyTest {

  public static void main(String[] args) {

    File src = new File("D:/1.jpg");

    // D:/1.jpg必须的存在不然会报错

    File dest = new File("D:/2.jpg");

    // 如果D:/2.jpg存在则覆盖,如果不存在则新建

    streamCopy(src, dest);

  }

private static void readCopy(File src,File dest)


  {

    FileReader fr=null;

    FileWriter fw=null;

    BufferedReader br=null;

    BufferedWriter bw=null;

    try {

      fr=new FileReader(src);

      fw=new FileWriter(dest);

      br=new BufferedReader(fr);

      bw=new BufferedWriter(fw);

      String str;

      while((str=br.readLine())!=null)

      {

        bw.write(str);

        bw.newLine();

      }

    }catch (IOException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

    }

    try {

      bw.close();

      br.close();

    } catch (IOException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

    }

 

  }

  private static void streamCopy(File src, File dest) {

    FileInputStream fis = null;

    FileOutputStream fos = null;

    BufferedInputStream bis = null;

    BufferedOutputStream bos = null;

    try {

      fis = new FileInputStream(src);

      fos = new FileOutputStream(dest);

      bis = new BufferedInputStream(fis);

      bos = new BufferedOutputStream(fos);

      int len;

      byte[] b = new byte[1024];

      while ((len = bis.read(b)) != -1) {

        bos.write(b, 0, len);

        // bos.write(b,0,len);是把读到数组的大小字节写入

        // bos.write(b);最后一次如果数组未写满的话就会多读。

      }

    } catch (IOException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

    }

    try {

      bos.close();

      bis.close();

    } catch (Exception e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

    }

  }

}

Drei: Konvertierungsstrom InputStreamReader und OutputStreamWriter

Die Rolle des Konvertierungsstroms, wenn die Textdatei in Form eines Bytestroms gespeichert wird Die Festplatte wird nach dem Lesen über InputStreamReader in einen Zeichenstrom zur Verarbeitung durch das Programm umgewandelt. Der vom Programm verarbeitete Zeichenstrom wird über OutputStreamWriter in einen Bytestrom umgewandelt und gespeichert.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

public class InputStreamWriterTest {

  public static void main(String[] args) {

    File src = new File("D:/Files/狗屁.txt");

    File dest = new File("D:/Files/斯密斯.txt");

    BufferedWriter bw = null;

    BufferedReader br = null;

    FileInputStream fis = null;

    FileOutputStream fos = null;

    try {

      fis = new FileInputStream(src);

      fos = new FileOutputStream(dest);

      InputStreamReader ir = new InputStreamReader(fis, "GBK");

      OutputStreamWriter ow = new OutputStreamWriter(fos, "GBK");

      bw = new BufferedWriter(ow);

      br = new BufferedReader(ir);

      String str;

      while ((str = br.readLine()) != null) {

        bw.write(str);

        bw.newLine();

        bw.flush();

      }

    } catch (IOException e) {

      e.printStackTrace();

    }

    try {

      bw.close();

      br.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
public class InputStreamWriterTest { public static void main(String[] args) { File src = new File("D:/Files/Shit.txt" ); File dest = new File("D:/Files/Smith.txt " ); BufferedWriter bw = null; BufferedReader br = null; FileInputStream fis = null; FileOutputStream fos = null; versuchen { fis = new FileInputStream(src); fos = new FileOutputStream(dest); InputStreamReader ir = new InputStreamReader(fis, "GBK"); OutputStreamWriter ow = new OutputStreamWriter(fos, "GBK"); bw = new BufferedWriter(ow); br = new BufferedReader(ir); String str; while ((str = br.readLine()) != null) { bw.write(str); bw.newLine(); bw.flush(); } } catch (IOException e) { e.printStackTrace(); } versuchen { bw.close(); br.close(); } catch (IOException e) { e.printStackTrace(); } } }

Verwandte Artikel:

Die Verwendung des Ausgabestreams OutputString() des Java-IO-Streams

Eine umfassende Einführung in den IO-Stream in Java

Ähnliche Videos:

Das neueste vollständige Java-Video-Tutorial – kostenloses Online-Video-Tutorial

Das obige ist der detaillierte Inhalt vonInformationen zu E/A-Streams in Java: Stream-Vererbungsbeziehungen, Verarbeitungsstreams und Konvertierungsstreams. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn