Javaの学習の保持でIO

基本的な考え方

ビット、バイト、3つの文字の区別。

ビット(ビット):コンピュータ内に格納されるデータの最小単位は、8ビットの二進数11001100です。

バイト(バイト):資本Bで示される、コンピュータデータ処理の基本単位である伝統的に、図1B(バイト、バイト)= 8ビット(ビット)

文字:文字は、コンピュータの使用を意味する数字、記号

ASCIIS码: 1个英文字母(不分大小写)= 1个字节的空间

                    1个中文汉字 = 2个字节的空间

                    1个ASCII码 = 一个字节

UTF-8编码:1个英文字符 = 1个字节

                     英文标点  = 1个字节

                     1个中文 = 3个字节

                     中文标点 = 3个字节

Unicode编码:1个英文字符 = 2个字节

                     英文标点  = 2个字节

                     1个中文 = 2个字节

                     中文标点 = 2个字节
# 有错误的话,请指出

IOは、Javaでストリーム

二つの入力及び出力ストリームを含むJavaのIOストリームは、各バイトストリームは二つのカテゴリー、および文字ストリームに分割される。次のようにメインクラスであります

  1. ファイル(ファイルの特性と管理):ファイルやディレクトリを記述する情報は、例えば、新しいディレクトリを作成し、ファイル名を変更し、ファイルを削除するには、パスファイルを決定します。

  2. 入力ストリーム(動作バイナリ形式):抽象クラス、入力操作バイトに基づいて、すべての入力ストリームの親クラスです。ストリームが持っているすべての入力に共通する特徴を定義します。

  3. OutputStream(オペレーションバイナリ形式):抽象クラス。バイト出力動作に基づきます。これは、すべての出力ストリームの親クラスです。これは、ストリームが持っているすべての出力の共通の特徴を定義します。

4.Reader(操作ファイルフォーマット):抽象クラス、入力操作に基づいて文字。

  1. ライター(操作ファイルフォーマット):抽象クラス、出力文字の操作に基づいて。

  2. AのRandomAccessFile(ランダムなファイル操作):別のクラスは、それがオブジェクト豊富な機能に直接継承し、アクセスすることができ(O)は、ファイル内のどこからでも操作しました。

概念と役割ストリーム

ストリーム:データソース・オブジェクトデータ出力能力や受信側のオブジェクトデータを受信することができます

エッセンスストリーム:データ伝送、フロー抽象の様々なタイプのデータ伝送特性、より直感的に便利なデータ操作

InputStream中的基本方法

//读取一个字节数据,并返回读到的数据,如果返回-1,表示读到了输入流的末尾。
int read() 
//将数据读入一个字节数组,同时返回实际读取的字节数。如果返回-1,表示读到了输入流的末尾。
int read(byte[] b) 
//将数据读入一个字节数组,同时返回实际读取的字节数。如果返	 回-1,表示读到了输入流的末尾。off指定在数组b中存放数据的起始偏移位置;len指定读取的最大字节数。
int read(byte[]?b, int off, int len) 

ストリーム決意の終わり:メソッド読み取り()-1の値を返す、のreadLine()値がnull返します。
OutputStream

void write(int b):往输出流中写入一个字节。
void write(byte[] b) :往输出流中写入数组b中的所有字节。
void write(byte[] b, int off, int len) :往输出流中写入数组b中从偏移量off开始的len个字节的数据。
void flush() :刷新输出流,强制缓冲区中的输出字节被写出。

Reader和Writer类似于上面

文字ストリームとバイトストリームの変換

InputStreamReaderの:ブリッジにバイト文字

OutputStreamWriter:ブリッジにバイト文字

OutputStreamWriter(OutStreamout):バイトストリーム出力文字ストリーム。

InputStreamReaderの(でのInputStream):バイトストリームに文字ストリーム入力。

区别

字节流没有缓冲区,是直接输出的,而字符流是输出到缓冲区的。因此在输出时,字节流不调用colse()方法时,信息已经输出了,而字符流只有在调用close()方法关闭缓冲区时,信息才输出。要想字符流在未关闭时输出信息,则需要手动调用flush()方法。

读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。

处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。

结论:只要是处理纯文本数据,就优先考虑使用字符流。除此之外都使用字节流。

原理:byte[]和String之间的互相转换

//在从字节流转化为字符流时:实际上就是byte[]转化为String时,
public String(byte bytes[], String charsetName)

//有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang

//而在字符流转化为字节流时,实际上是String转化为byte[]时,
byte[]   String.getBytes(String charsetName)
リリース6元記事 ウォンの賞賛0 ビュー835

おすすめ

転載: blog.csdn.net/csdn960616/article/details/92771477