Die Anleitung zu Java OutputStream
1. OutputStream
OutputStream ist eine Klasse im Paket java.io. Das ist eine Basisklasse, die einen Zeichenstrom von bytes (stream of bytes) darstellt, um bytes in ein Ziel wie eine Datei zu schreiben.
public abstract class OutputStream implements Closeable, Flushable
- ByteArrayOutputStream
- FileOutputStream
- FilterOutputStream
- ObjectOutputStream
- PipedOutputStream
- BufferedOutputStream
- DataOutputStream
- PrintStream
- CheckedOutputStream
- CipherOutputStream
- DeflaterOutputStream
- DigestOutputStream
- InflaterOutputStream
Grundsätzlich können Sie die Klasse OutputStream nicht direkt verwenden, da es sich um eine abstrakte Klasse handelt. In einem bestimmten Fall können Sie jedoch eine der Unterklasse verwenden.
OutputStream methods
public static OutputStream nullOutputStream()
public abstract void write(int b) throws IOException
public void write(byte b[]) throws IOException
public void write(byte b[], int off, int len) throws IOException
public void flush() throws IOException
public void close() throws IOException
2. write(int)
public abstract void write(int b) throws IOException
Schreibt ein byte in OutputStream. Der Parameter b ist der Code ohne Vorzeichen von byte, der ein Integer zwischen 0 und 255 ist. Wenn der Wert von b außerhalb des obigen Bereichs liegt, wird er ignoriert.
OutputStream_write_ex1.java
package org.o7planning.outputstream.ex;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class OutputStream_write_ex1 {
// Windows path: C:/Somedirectory/out-file.txt
private static final String file_path = "/Volumes/Data/test/out-file.txt";
public static void main(String[] args) throws IOException {
File file = new File(file_path);
// Create parent folder:
file.getParentFile().mkdirs();
// FileOutputStream
OutputStream os = new FileOutputStream(file);
// 'J'
os.write((int)'J'); // 74
// 'P'
os.write('P'); // 80 (Automatically converted to int)
// '日' = 3 bytes UTF-8: [230, 151, 165]
os.write(230);
os.write(151);
os.write(165);
// '本' = 3 bytes UTF-8: [230, 156, 172]
os.write(230);
os.write(156);
os.write(172);
// '-'
os.write('-'); // 45 (Automatically converted to int)
// '八' = 3 bytes UTF-8: [229, 133, 171]
os.write(229);
os.write(133);
os.write(171);
// '洲' = 3 bytes UTF-8: [230, 180, 178]
os.write(230);
os.write(180);
os.write(178);
// Close
os.close();
}
}
Output:
out-file.txt
JP日本-八洲
Die Datei UTF-8 verwenden 1, 2, 3 oder 4 bytes um ein Zeichen zu speichern. Das Bild unten zeigt die bytes in der neu erstellten Datei.
3. write(byte[])
public void write(byte[] b) throws IOException
Schreiben Sie ein Array byte in OutputStream.
OutputStream_write_ex2.java
package org.o7planning.outputstream.ex;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class OutputStream_write_ex2 {
// Windows path: C:/Somedirectory/out-file.txt
private static final String file_path = "/Volumes/Data/test/out-file.txt";
public static void main(String[] args) throws IOException {
File file = new File(file_path);
// Create parent folder:
file.getParentFile().mkdirs();
// FileOutputStream
OutputStream writer = new FileOutputStream(file);
byte[] bytes = new byte[] { 'J', 'P', //
(byte)230, (byte)151, (byte)165, // '日' = 3 bytes UTF-8: [230, 151, 165]
(byte)230, (byte)156, (byte)172, // '本' = 3 bytes UTF-8: [230, 156, 172]
'-', //
(byte)229, (byte)133, (byte)171, // '八' = 3 bytes UTF-8: [229, 133, 171]
(byte)230, (byte)180, (byte)178, // '洲' = 3 bytes UTF-8: [230, 180, 178]
};
writer.write(bytes);
// Close
writer.close();
}
}
Output:
out-file.txt
JP日本-八洲
4. write(byte[], int, int)
public void write(byte b[], int offset, int len) throws IOException
Schreiben Sie ein Teil eines Array byte in OutputStream. Schreiben Sie bytes von Index offset zu Index offset+len.
OutputStream_write_ex3.java
package org.o7planning.outputstream.ex;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class OutputStream_write_ex3 {
public static void main(String[] args) throws IOException {
// ByteArrayOutputStream is a subclass of OutputStream.
OutputStream outputStream = new ByteArrayOutputStream();
byte[] bytes = new byte[] {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
outputStream.write(bytes, 2, 5); // '2', ...'6'
String s = outputStream.toString();
System.out.println(s);
outputStream.close();
}
}
Output:
23456
5. close()
public void close() throws IOException
Die Methode close() wird verwendet, um diesen Stream zu schließen. Die Methode flush() wird zuerst aufgerufen. Sobald der Stream geschlossen wurde, führen weitere Aufrufe von write() oder flush() dazu, dass eine IOException ausgelöst wird. Das Schließen eines zuvor geschlossenen Streams hat keine Auswirkung.
public interface Closeable extends AutoCloseable
Die Klasse Writer implementiert die Interface Closeable. Wenn Sie die Code nach dem Regel von AutoCloseable schreiben, schließt das System den Stream automatisch für Sie, ohne die Methode close() direkt aufrufen zu müssen.
OutputStream_close_ex1.java
package org.o7planning.outputstream.ex;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class OutputStream_close_ex1 {
// Windows path: C:/Somedirectory/out-file.txt
private static final String file_path = "/Volumes/Data/test/out-file.txt";
public static void main(String[] args) throws IOException {
File file = new File(file_path);
// Create parent folder:
file.getParentFile().mkdirs();
try (OutputStream writer = new FileOutputStream(file)) {
writer.write((int) '1');
writer.write('2');
writer.write((int) '3');
}
}
}
- Die Anleitung zu Java Closeable
6. flush()
public void flush() throws IOException
Die Daten, die Sie in OutputStream schreiben, werden manchmal vorläufig im Puffer gespeichert. Die Methode flush() wird verwendet, um die Daten in das Ziel zu leeren (flush).
Sie können den folgenden Artikel zu BufferedOutputStream lesen, um mehr über die Methode flush() zu erfahren.
Wenn das beabsichtigte Ziel dieses OutputStream eine vom zugrunde liegenden Betriebssystem bereitgestellte Abstraktion ist, z. B. eine Datei, garantiert das Leeren des Streams nur, dass zuvor in den Stream geschriebene bytes zum Schreiben an das Betriebssystem übergeben werden. Es kann nicht garantiert werden, dass sie tatsächlich auf ein physisches Gerät wie ein Festplattenlaufwerk geschrieben werden
Die Anleitungen Java IO
- Die Anleitung zu Java CharArrayWriter
- Die Anleitung zu Java FilterReader
- Die Anleitung zu Java FilterWriter
- Die Anleitung zu Java PrintStream
- Die Anleitung zu Java BufferedReader
- Die Anleitung zu Java BufferedWriter
- Die Anleitung zu Java StringReader
- Die Anleitung zu Java StringWriter
- Die Anleitung zu Java PipedReader
- Die Anleitung zu Java LineNumberReader
- Die Anleitung zu Java PushbackReader
- Die Anleitung zu Java PrintWriter
- Die Anleitung zu Java IO Binary Streams
- Die Anleitung zu Java IO Character Streams
- Die Anleitung zu Java BufferedOutputStream
- Die Anleitung zu Java ByteArrayOutputStream
- Die Anleitung zu Java DataOutputStream
- Die Anleitung zu Java PipedInputStream
- Die Anleitung zu Java OutputStream
- Die Anleitung zu Java ObjectOutputStream
- Die Anleitung zu Java PushbackInputStream
- Die Anleitung zu Java SequenceInputStream
- Die Anleitung zu Java BufferedInputStream
- Die Anleitung zu Java Reader
- Die Anleitung zu Java Writer
- Die Anleitung zu Java FileReader
- Die Anleitung zu Java FileWriter
- Die Anleitung zu Java CharArrayReader
- Die Anleitung zu Java ByteArrayInputStream
- Die Anleitung zu Java DataInputStream
- Die Anleitung zu Java ObjectInputStream
- Die Anleitung zu Java InputStreamReader
- Die Anleitung zu Java OutputStreamWriter
- Die Anleitung zu Java InputStream
- Die Anleitung zu Java FileInputStream
Show More
- Anleitungen Java Servlet/JSP
- Die Anleitungen Java New IO
- Anleitungen Spring Cloud
- Die Anleitungen Oracle Java ADF
- Die Anleitungen Java Collections Framework
- Java Grundlagen
- Die Anleitungen Java Date Time
- Java Open Source Bibliotheken
- Anleitungen Java Web Services
- Die Anleitungen Struts2 Framework
- Anleitungen Spring Boot