Руководство Java FileInputStream
1. FileInputStream
FileInputStream - это подкласс InputStream, который используется для чтения двоичных файлов, таких как фотографи, музыка, видео. Полученные данные являются необработанными bytes (raw bytes). Для обычных текстовых файлов вместо этого следует использовать FileReader.
public class FileInputStream extends InputStream
- InputStream
- ByteArrayInputStream
- PushbackInputStream
- PipedInputStream
- SequenceInputStream
- BufferedInputStream
- DataInputStream
- FilterInputStream
- ObjectInputStream
- AudioInputStream
- InflaterInputStream
- DigestInputStream
- DeflaterInputStream
- CipherInputStream
- CheckedInputStream
FileInputStream constructors
FileInputStream(File file)
FileInputStream(FileDescriptor fdObj)
FileInputStream(String name)
Большинство методов FileInputStream наследуются от InputStream:
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() | используется для возврата уникального объекта FileChannel, связанного с этим FileInputStream. |
FileDescriptor getFD() | используется для возврата объекта FileDescriptor. |
2. Example 1
В качестве первого примера мы используем FileInputStream для чтения японского текстового файла, закодированного с помощью UTF-8:
utf8-file-without-bom.txt
JP日本-八洲
Примечание: UTF-8 использует 1, 2, 3 или 4 bytes для хранения одного символа. Тем временем FileInputStream считывает каждый byte из файла, так что вы получите довольно странный результат.
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 ²
Для чтения текстовых файлов UTF-8, UTF-16, ... вы должны использовать FileReader или InputStreamReader:
Руководства Java IO
- Руководство Java CharArrayWriter
- Руководство Java FilterReader
- Руководство Java FilterWriter
- Руководство Java PrintStream
- Руководство Java BufferedReader
- Руководство Java BufferedWriter
- Руководство Java StringReader
- Руководство Java StringWriter
- Руководство Java PipedReader
- Руководство Java LineNumberReader
- Руководство Java PushbackReader
- Руководство Java PrintWriter
- Руководство Java IO Binary Streams
- Руководство Java IO Character Streams
- Руководство Java BufferedOutputStream
- Руководство Java ByteArrayOutputStream
- Руководство Java DataOutputStream
- Руководство Java PipedInputStream
- Руководство Java OutputStream
- Руководство Java ObjectOutputStream
- Руководство Java PushbackInputStream
- Руководство Java SequenceInputStream
- Руководство Java BufferedInputStream
- Руководство Java Reader
- Руководство Java Writer
- Руководство Java FileReader
- Руководство Java FileWriter
- Руководство Java CharArrayReader
- Руководство Java ByteArrayInputStream
- Руководство Java DataInputStream
- Руководство Java ObjectInputStream
- Руководство Java InputStreamReader
- Руководство Java OutputStreamWriter
- Руководство Java InputStream
- Руководство Java FileInputStream
Show More