Javas InputStream
und OutputSteam
sind beide abstrakte Klassen, die zum Zugriff auf den zugrunde liegenden Datensatz verwendet werden. Es handelt sich um APIs, die Operationen für bestimmte Datensequenzen definieren, die in einer Reihe von Schritten implementiert werden. InputStream
ordnen Sie den Datensatz in einen geordneten Strom von Bytes neu an, um Daten aus einer Datei oder einem Netzwerk zu lesen. Gibt -1 am Ende des Streams zurück (Java hat keinen unsignierten Byte -Datentyp). OutputStream
erhält dann Ausgabebytes und schreibt sie an das Ziel. Es ist die grundlegendste Methode zum Schreiben einer einzelnen Byteausgabe. Dieser Artikel vergleichen die Unterschiede zwischen diesen beiden Streams und erläutert sie in Kombination mit praktischen Anwendungen.
Eingabebeispiel
FileOutputStream fileOut = new FileOutputStream("ARBRDD.txt");
Ausgabebeispiel
<code>file is successfully updated today!!</code>Der Unterschied zwischen
InputStream
und OutputStream
Features
特性
InputStream
OutputStream
数据读取/写入
使用 read()
、read(byte[])
、read(byte[], int, int)
读取数据
使用 write(int)
、write(byte[])
、write(byte[], int, int)
写入数据
数据流向
数据从源流向应用程序
数据从应用程序流向目标
数据类型
可读取字节
可写入字节、字符或对象(使用子类)
数据连接
可使用 FileInputStream
或 ByteArrayInputStream
连接现有数据
可使用 FileOutputStream
或 ByteArrayOutputStream
连接现有数据
Daten lesen/schreiben
verwenden read ()
, read (byte [])
, read (byte [], int, int)
/td>
Daten mit schreiben (int)
, schreiben (byte [])
, schreiben (byte [], int, int)
Datenfluss
Datenflüsse von Quelle zu Anwendung
Datenflüsse von der Anwendung zu Ziel
Datentyp
lesbare Bytes
beschreibbare Bytes, Zeichen oder Objekte (mit Unterklassen)
Datenverbindung
Sie können FileInputStream
oder bytearrayInputStream
verwenden, um eine Verbindung zu vorhandenen Daten zu herstellen
Sie können FileOutputStream
oder bytearrayoutputStream
verwenden, um eine Verbindung zu vorhandenen Daten herzustellen
wie man
verwendet
Verwenden Sie die Funktionen FileInputStream
und FileOutputStream
.
Algorithmus
Dieser Algorithmus beschreibt den Workflow der Stream -Klasse. Deklarieren Sie zuerst die Einfügungsreihenfolge (z. B. unter Verwendung der Timer -Klasse). Das Eingangsergebnis wird dann durch Iterating Länge durchquert.
- Schritt 1 - Starten Sie den Prozess.
- Schritt 2 - Deklarieren Sie den Eingangs- und Ausgangsstrom.
- Schritt 3 - importierte integrierte Klassen und deklarierte Funktionen.
- Schritt 4 - eine öffentliche Klasse deklarieren.
- Schritt 5 - Setzen Sie die Funktion.
- Schritt 6 - Führen Sie den Einfügungsvorgang durch.
- Schritt 7 - Deklarieren Sie eine Array -Liste und füllen Sie sie.
- Schritt 8 - Deklarieren Sie den festgelegten Wert.
- Schritt 9 - Druckwerte in der Reihenfolge der Einfügung.
- Schritt 10 - eine Schleife deklarieren, um den Prozess zu iterieren.
- Schritt 11 - Legen Sie den Timer -Wert fest.
- Schritt 12 - Führen Sie den Vorgang aus und erhalten Sie den Ausgabewert.
- Schritt 13 - Beenden Sie den Prozess.
Grammatik
Syntax erklärt, wie ein Prozess als Null für markiert und überspringen kann. Danach werden wir den Prozess zurücksetzen, um den Stapelwert zu verfolgen, indem wir die Ausnahmeklasse erzwingen.
FileOutputStream fileOut = new FileOutputStream("ARBRDD.txt");
Verwenden Sie FileInputStream
und FileOutputStream
Methoden
Diese Methode verwendet die Methoden FileInputStream
und FileOutputStream
, um das Streaming in der Sammlung durchzuführen.
Beispiel
Dieser Code verwendet eine Textdatei, um eine Zeichenfolge über eine Java -Stream -Funktion zu schreiben. In diesem Prozess wird ein Hakenblock deklariert, um die Ausnahme zu behandeln.
<code>file is successfully updated today!!</code>
Ausgabe
public class NewClass {
public static void main(String[] args) throws Exception {
InputStream processARBRDD = null;
try {
processARBRDD = new FileInputStream("FILE_NAME.txt");
// PRINT METHOD
processARBRDD.mark(0);
processARBRDD.skip(1);
// PRINT METHOD
boolean check = processARBRDD.markSupported();
if (processARBRDD.markSupported()) {
processARBRDD.reset();
// PRINT METHODS
} else {
// PRINT METHODS
}
} catch (Exception excpt) {
excpt.printStackTrace();
} finally {
if (processARBRDD != null) {
processARBRDD.close();
}
}
}
}
Schlussfolgerung
ByteArray
Stream wird verwendet, um Daten in ein Byte -Array zu schreiben. In diesem Thema verwenden wir verschiedene Stream -Funktionen, um Verbindungen zwischen Daten und Code herzustellen.
特性 | InputStream |
OutputStream |
---|---|---|
数据读取/写入 | 使用 read() 、read(byte[]) 、read(byte[], int, int) 读取数据 |
使用 write(int) 、write(byte[]) 、write(byte[], int, int) 写入数据 |
数据流向 | 数据从源流向应用程序 | 数据从应用程序流向目标 |
数据类型 | 可读取字节 | 可写入字节、字符或对象(使用子类) |
数据连接 | 可使用 FileInputStream 或 ByteArrayInputStream 连接现有数据 |
可使用 FileOutputStream 或 ByteArrayOutputStream 连接现有数据 |
read ()
, read (byte [])
, read (byte [], int, int)
/td>
schreiben (int)
, schreiben (byte [])
, schreiben (byte [], int, int)
FileInputStream
oder bytearrayInputStream
verwenden, um eine Verbindung zu vorhandenen Daten zu herstellen FileOutputStream
oder bytearrayoutputStream
verwenden, um eine Verbindung zu vorhandenen Daten wie man
verwendet Verwenden Sie die Funktionen FileInputStream
und FileOutputStream
.
Algorithmus
Dieser Algorithmus beschreibt den Workflow der Stream -Klasse. Deklarieren Sie zuerst die Einfügungsreihenfolge (z. B. unter Verwendung der Timer -Klasse). Das Eingangsergebnis wird dann durch Iterating Länge durchquert.
- Schritt 1 - Starten Sie den Prozess.
- Schritt 2 - Deklarieren Sie den Eingangs- und Ausgangsstrom.
- Schritt 3 - importierte integrierte Klassen und deklarierte Funktionen.
- Schritt 4 - eine öffentliche Klasse deklarieren.
- Schritt 5 - Setzen Sie die Funktion.
- Schritt 6 - Führen Sie den Einfügungsvorgang durch.
- Schritt 7 - Deklarieren Sie eine Array -Liste und füllen Sie sie.
- Schritt 8 - Deklarieren Sie den festgelegten Wert.
- Schritt 9 - Druckwerte in der Reihenfolge der Einfügung.
- Schritt 10 - eine Schleife deklarieren, um den Prozess zu iterieren.
- Schritt 11 - Legen Sie den Timer -Wert fest.
- Schritt 12 - Führen Sie den Vorgang aus und erhalten Sie den Ausgabewert.
- Schritt 13 - Beenden Sie den Prozess.
Grammatik
Syntax erklärt, wie ein Prozess als Null für markiert und überspringen kann. Danach werden wir den Prozess zurücksetzen, um den Stapelwert zu verfolgen, indem wir die Ausnahmeklasse erzwingen.
FileOutputStream fileOut = new FileOutputStream("ARBRDD.txt");
Verwenden Sie FileInputStream
und FileOutputStream
Methoden
Diese Methode verwendet die Methoden FileInputStream
und FileOutputStream
, um das Streaming in der Sammlung durchzuführen.
Beispiel
Dieser Code verwendet eine Textdatei, um eine Zeichenfolge über eine Java -Stream -Funktion zu schreiben. In diesem Prozess wird ein Hakenblock deklariert, um die Ausnahme zu behandeln.
<code>file is successfully updated today!!</code>
Ausgabe
public class NewClass { public static void main(String[] args) throws Exception { InputStream processARBRDD = null; try { processARBRDD = new FileInputStream("FILE_NAME.txt"); // PRINT METHOD processARBRDD.mark(0); processARBRDD.skip(1); // PRINT METHOD boolean check = processARBRDD.markSupported(); if (processARBRDD.markSupported()) { processARBRDD.reset(); // PRINT METHODS } else { // PRINT METHODS } } catch (Exception excpt) { excpt.printStackTrace(); } finally { if (processARBRDD != null) { processARBRDD.close(); } } } }
Schlussfolgerung
ByteArray
Stream wird verwendet, um Daten in ein Byte -Array zu schreiben. In diesem Thema verwenden wir verschiedene Stream -Funktionen, um Verbindungen zwischen Daten und Code herzustellen.
Das obige ist der detaillierte Inhalt vonUnterschied zwischen InputStream und OutputStream in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Aufstrebende Technologien stellen sowohl Bedrohungen dar und verbessert die Plattformunabhängigkeit von Java. 1) Cloud Computing- und Containerisierungstechnologien wie Docker verbessern die Unabhängigkeit der Java -Plattform, müssen jedoch optimiert werden, um sich an verschiedene Cloud -Umgebungen anzupassen. 2) WebAssembly erstellt Java -Code über Graalvm, wodurch die Unabhängigkeit der Plattform erweitert wird, muss jedoch mit anderen Sprachen um die Leistung konkurrieren.

Verschiedene JVM -Implementierungen können die Unabhängigkeit von Plattformen bieten, ihre Leistung ist jedoch etwas unterschiedlich. 1. OracleHotSpot und OpenJDKJVM können in der Plattformunabhängigkeit ähnlich erfolgen, aber OpenJDK erfordert möglicherweise eine zusätzliche Konfiguration. 2. IBMJ9JVM führt eine Optimierung für bestimmte Betriebssysteme durch. 3.. Graalvm unterstützt mehrere Sprachen und erfordert zusätzliche Konfiguration. 4. Azulzingjvm erfordert spezifische Plattformanpassungen.

Die Unabhängigkeit der Plattform senkt die Entwicklungskosten und verkürzt die Entwicklungszeit, indem es denselben Code -Satz auf mehreren Betriebssystemen ausführt. Insbesondere manifestiert es sich als: 1. Reduzieren Sie die Entwicklungszeit, es ist nur ein Codesatz erforderlich; 2. Reduzieren Sie die Wartungskosten und vereinen Sie den Testprozess; 3.. Schnelle Iteration und Teamzusammenarbeit, um den Bereitstellungsprozess zu vereinfachen.

Java'SplatformIndependenceFacilitateCodereuseByAllowingByteCodetorunonanyPlatformWitHajvm.1) EntwicklungscanwriteCodeonceforconsistentBehavioracrossplattforms.2) AUFTURET ISREITUNG ISRECTIONSUCDEDESCODEDOSNEWRITED.3)) und

Um plattformspezifische Probleme in Java-Anwendungen zu lösen, können Sie die folgenden Schritte ausführen: 1. Verwenden Sie die Systemklasse von Java, um die Systemeigenschaften anzuzeigen, um die laufende Umgebung zu verstehen. 2. Verwenden Sie die Dateiklasse oder das Paket von Java.nio.file, um Dateipfade zu verarbeiten. 3. Laden Sie die lokale Bibliothek gemäß den Bedingungen des Betriebssystems. 4. Verwenden Sie VisualVM oder JProfiler, um die plattformübergreifende Leistung zu optimieren. 5. Stellen Sie sicher, dass die Testumgebung durch Docker -Containerisierung mit der Produktionsumgebung übereinstimmt. 6. Verwenden Sie GitHubactions, um automatisierte Tests auf mehreren Plattformen durchzuführen. Diese Methoden tragen dazu bei, plattformspezifische Probleme in Java-Anwendungen effektiv zu lösen.

Der Klassenlader stellt die Konsistenz und Kompatibilität von Java-Programmen auf verschiedenen Plattformen durch ein einheitliches Klassendateiformat, dynamische Lade-, übergeordnete Delegationsmodell und plattformunabhängige Bytecode und erreicht Plattformunabhängigkeit.

Der vom Java-Compiler generierte Code ist plattformunabhängig, aber der Code, der letztendlich ausgeführt wird, ist plattformspezifisch. 1. Java-Quellcode wird in plattformunabhängige Bytecode zusammengestellt. 2. Die JVM wandelt Bytecode für eine bestimmte Plattform in den Maschinencode um und stellt den plattformübergreifenden Betrieb sicher, aber die Leistung kann unterschiedlich sein.

Multithreading ist für die moderne Programmierung wichtig, da es die Reaktionsfähigkeit und die Nutzung der Ressourcen verbessern und komplexe gleichzeitige Aufgaben erledigen kann. JVM sorgt für die Konsistenz und Effizienz von Multithreads auf verschiedenen Betriebssystemen durch Thread Mapping, Planungsmechanismus und Synchronisationssperrmechanismus.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung