codestory

Die Anleitung zu Java FileInputStream

  1. FileInputStream
  2. Example 1

1. FileInputStream

FileInputStream ist eine Unterklasse von InputStream, mit der Binärdateien wie Fotos, Musik, Videos gelesen werden. Die empfangene Daten des Lesens sind rohe bytes (raw bytes). Für normale Textdateien sollten Sie stattdessen FileReader verwenden.
public class FileInputStream extends InputStream
FileInputStream constructors
FileInputStream​(File file)  

FileInputStream​(FileDescriptor fdObj)     

FileInputStream​(String name)
Die meisten Methoden von FileInputStream werden von InputStream geerbt:
public final FileDescriptor getFD() throws IOException  
public FileChannel getChannel()  

// Methods inherited from InputStream:

public int read() throws IOException   
public int read(byte b[]) throws IOException    
public int read(byte b[], int off, int len) throws IOException  
public byte[] readAllBytes() throws IOException   
public byte[] readNBytes(int len) throws IOException  
public int readNBytes(byte[] b, int off, int len) throws IOException
 
public long skip(long n) throws IOException  
public int available() throws IOException   

public synchronized void mark(int readlimit)  
public boolean markSupported()  

public synchronized void reset() throws IOException
public void close() throws IOException  

public long transferTo(OutputStream out) throws IOException
FileChannel getChannel()
Es wird verwendet, um das eindeutige Objekt FileChannel zurückzugeben, das diesem FileInputStrem verbunden ist.
FileDescriptor getFD()
Es wird verwendet, um ein Objekt FileDescriptor zurückzugeben.

2. Example 1

Als erstes Beispiel verwenden wir FileInputStream um eine mit UTF-8 codierte japansiche Textdatei zu lesen:
utf8-file-without-bom.txt
JP日本-八洲
Hinweis: UTF-8 verwendet 1, 2, 3 oder 4 bytes zum Speichern eines Zeichen. Inzwischen liest FileInputStream jedes byte aus der Datei, deshalb Sie ein ziemlich fremdes Ergebnis erhalten.
FileInputStreamEx1.java
package org.o7planning.fileinputstream.ex;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.MalformedURLException;

public class FileInputStreamEx1 {

    public static void main(String[] args) throws MalformedURLException, IOException {
        
        // Windows Path:  C:/Data/test/utf8-file-without-bom.txt
        String path = "/Volumes/Data/test/utf8-file-without-bom.txt";
        File file = new File(path);
 
        FileInputStream fis = new FileInputStream(file);
        
        int code;
        while((code = fis.read()) != -1) {
            char ch = (char) code;
            System.out.println(code + "  " + ch);
        }
        fis.close();
    }
}
Output:
74  J
80  P
230  æ
151  —
165  ¥
230  æ
156  œ
172  ¬
45  -
229  å
133  …
171  «
230  æ
180  ´
178  ²
Um die Textdateien UTF-8, UTF-16,.. zu lesen, sollten Sie FileReader oder InputStreamReader verwenden:

Die Anleitungen Java IO

Show More