ホームページ Java &#&チュートリアル Java言語はJAVA IOフローの本質に深く入り込みます

Java言語はJAVA IOフローの本質に深く入り込みます

Dec 17, 2016 am 11:29 AM

1.入力と出力
1.stream は、データを生成できる任意のデータ ソース、またはデータを受信できる任意の受信ソースを表します。
Java の IO では、すべてのストリーム (入力ストリームと出力ストリームを含む) には次の 2 つのタイプが含まれます:
1.1 バイト指向ストリーム
バイト指向ストリームとは、ストリームからバイトが抽出されることを意味します。ストリームに対して情報を読み書きします。バイト指向ストリームには次のタイプが含まれます:
1) 入力ストリーム:
1) ByteArrayInputStream: メモリ内のバッファを InputStream として使用します
2) StringBufferInputStream: String オブジェクトを InputStream として使用します
3) FileInputStream: ファイルをファイルの読み取り操作を実現するためのInputStream
4) PipedInputStream: 主にスレッドで使用されるパイプの概念を実装します
5) SequenceInputStream: 複数のInputStreamを1つのInputStreamにマージします
2) 出力ストリーム
1) ByteArrayOutputStream: 情報をバッファに格納しますメモリ内
2) FileOutputStream: ファイルに情報を保存します
3) PipedOutputStream: 主にスレッドで使用されるパイプの概念を実装します
4) SequenceOutputStream: 複数の OutStream をマージします これは OutStream です
1.2 Unicode 文字指向のストリーム
Unicode 文字指向ストリーム。これは、Unicode 文字の単位でストリームから情報を読み書きすることを意味します。 Unicode 文字指向ストリームには次のタイプがあります:
1) 入力ストリーム
1) CharArrayReader: ByteArrayInputStream に対応
2) StringReader: StringBufferInputStream に対応
3) FileReader: FileInputStream に対応
4) PipedReader: PipedInputStream に対応
2) Out Stream
1) CharArrayWrite: ByteArrayOutputStream に対応
2) StringWrite: 対応するバイト指向ストリームがない
3) FileWrite: FileOutputStream
に対応 4) PipedWrite: PipedOutputStream
に対応 文字ベース 指向ストリームは基本的に対応するバイト指向のストリーム。対応する 2 つのクラスで実装される機能は同じですが、操作時のガイダンスが異なります。たとえば、CharArrayReader: と ByteArrayInputStream はどちらもメモリ内のバッファを InputStream として使用します。違いは、前者は毎回メモリから 1 バイトの情報を読み取るのに対し、後者は毎回 1 文字をメモリから読み取ることです。
1.3 現在指向ではない 2 つのストリーム間の変換
InputStreamReader と OutputStreamReader: バイト指向のストリームを文字指向のストリームに変換します。
2. ストリームに属性を追加する
2.1 「ストリームに属性を追加する」の役割
上記で紹介したJavaでIOを操作するためのAPIを利用することで、任意の操作を完了させることができます。ただし、FilterInputStream と FilterOutStream のサブクラスを通じて、ストリームにプロパティを追加できます。以下は、この関数の機能を説明するための
の例です。
データをファイルに書き込みたい場合は、次のようにすることができます:
FileOutStream fs = new FileOutStream("test.txt");
その後、test.txt ファイルとの間で write() 関数を呼び出すことができます。生成されたfsオブジェクトにデータが書き込まれます。しかし、「ファイルに書き込むデータをメモリ上にキャッシュし、その後キャッシュ内のデータをファイルに書き込む」という機能を実装したい場合、上記の API ではいずれもニーズを満たすことができません。ただし、FilterInputStream と FilterOutStream のサブクラスを通じて、必要な関数を FileOutStream に追加できます。
2.2 さまざまなタイプのFilterInputStream
2.2.1 バイト指向のInputStreamをカプセル化するために使用されます
1) DataInputStream: ストリームから基本タイプ(int、charなど)のデータを読み取ります。
2) BufferedInputStream: バッファーを使用します
3) LineNumberInputStream: 入力ストリームの行数を記録し、その後 getLineNumber() と setLineNumber(int) を呼び出すことができます
4) PushbackInputStream: まれに使用され、通常はコンパイラー開発に使用されます
2.2.2 文字指向のInputStreamをカプセル化するために使用されます
1) DataInputStreamに対応するクラスはありません。 readLine()を使用するときに代わりにBufferedReaderを使用しない限り、DataInputStream
を使用してください2) BufferedReader: BufferedInputStream
に対応します3) LineNumberReader: LineNumberInputStream
に対応します4) PushBackReader: PushbackInputStream
に対応します2.3 さまざまな種類のFilterOutStream
2.2.3 カプセル化に使用されますバイト指向の OutputStream
1) DataIOutStream: 基本型 (int、char など) データをストリームに出力します。
2) BufferedOutStream: バッファーを使用します
3) PRintStream: フォーマットされた出力を生成します
2.2.4 文字指向の OutputStream をカプセル化するために使用されます
1) BufferedWrite:
2) PrintWrite:
3 に対応します ) 読み取りおよび書き込み。ファイルに対する操作は、RandomAccessFile オブジェクトを通じて完了できます
2) オブジェクトを生成するときに、開くファイルの性質を指定できます: r、読み取り専用、w、rw は読み取りと書き込みが可能です
3 ) ファイルで指定した場所に直接ジャンプできます
4. I/Oアプリケーションの例
import java.io.*;
public class TestIO{
public static void main(String[] args)
throws IOException{
//1. ファイルから行単位で読み込みます。
BufferedReader in =
new BufferedReader(
new FileReader("F:\nepalon\TestIO.java"));
String s, s2 = new String();
while((s = in.readLine()) ! = null)
s2 += s + "n";
in.close();

//1b. キーボード入力を受信します
BufferedReader stdin =
new BufferedReader(
new InputStreamReader(System.in));
System .out .println("行を入力してください:");
System.out.println(stdin.readLine());

//2. String オブジェクトからデータを読み取ります
StringReader in2 = new StringReader(s2) ;
int c ;
while((c = in2.read()) != -1)
System.out.println((char)c);
in2.close();

上記は Java、IO Streaming コンテンツ、その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの平方根 Javaの平方根 Aug 30, 2024 pm 04:26 PM

Java の平方根のガイド。ここでは、Java で平方根がどのように機能するかを、例とそのコード実装をそれぞれ示して説明します。

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

Javaのアームストロング数 Javaのアームストロング数 Aug 30, 2024 pm 04:26 PM

Java のアームストロング番号に関するガイド。ここでは、Java でのアームストロング数の概要とコードの一部について説明します。

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

See all articles