[Lehrの] JavaのIOの個人的な理解

その他の関連コンテンツ

ファイルの種類

java.io.Fileの类

ファイルを表すために使用される特定のコンテンツファイルに関連しない
だけで、ファイルの種類の基本的な性質のパス名に関し、

オブジェクトの構築方法:

File d = new File("地址字符串");

(Java中路径分割最安全的方法是 File.separator 来代替\\在Windows)

一般的な方法

ファイルかどうかを判断するためにISFILE()
isDirectory()判決がフォルダではありませんが見ているディレクトリではない
のgetName()ファイルの名前を取得する
のgetParentを()親ディレクトリを取得するために
ある、getPath()は、ファイルのフルパス取得
長()は、ファイルのサイズを取得します。
LASTMODIFIED()が最後に変更イベントを取得
LISTFILES()を返すすべてのサブフォルダが戻り値が配列クラスファイルのファイルである[]
削除(DELETE)関数
が存在();戻り値をブール値クラスの存在を決定するために
d.mkdirsを();マルチレベルディレクトリの作成
dは。でCreateNewFile();ファイルを作成します

如何在文件不存在的情况下创建目录?
)(存在
d.mkdirs()
)(d.createNewFile を##
这三个一起配合使用即可

関連のコーディング

バイトと文字

コンピュータの文字は、人為的に、私は0これは知りません理解して分割することができない
だけで二進数字0と1を知っているバイトのコンピュータを

字符利于人来阅读,但是不利于计算机阅读

エンコーディングタイプ

ASCIIコード8小さなビットバイトバイトは英語と文字が256文字まで表現する共通保存するために、それは十分明確ではありません

拡散コード(バイトを追加)
EG:
ISO8859 -----西ヨーロッパの
GBK ---------(最も一般的に20,000以上の漢字使用)
GB18030 ---- GBシリーズは、最も完全なコード7万漢字や文字を表しています
繁体字中国語BIG5 ------------

即使这样了但还是不能共通,所以,有了Unicode
ユニコード
世界中のすべてを含む文字が含ま
目標はグローバル言語含まれるように拡大し続けることである
符号化方式は、
ASCIIと互換性のある、可変長文字の使用は、1-4の文字が上(例えば、B、Cなど)小文字の文字に保存されている:UTF-8 ; 2と漢字。

UTF-16:2-4可変長

UTF-32:4バイトと。とにかく、確かに十分な大きさを32ビット、しかし、経済的ではありません。UTF-8があるので、最も一般的に使用されます

ANSIコード
非UnicodeにWindowsのデフォルトのエンコード
システムは中国のGBK、繁体字中国語システムがBig5のある簡素化されたとき。
デフォルトでは、メモ帳ANSIの可能性が高い文字化けしている地域のさまざまな国でファイルを保存しますので、お互いの送信に使用することです。

入出力ストリーム

抽象ベースクラスストリーム

バイトストリーム

InputStream
のOutputStream

文字ストリーム

リーダー
ライター

巧记:结尾的时候,字节stream,字符er

違い

動作モードは、基本的には同じですが、異なるものを返します。次に、一例として、入力ストリーム:

int)が(読み;

1バイトを削除し、intを返します。それだけであるので、バイト8ビットは、0〜255の範囲
、あなたが中国語の文字がバイトに流れます読み取ることができないときには。尾を読む-1が返され
ますが、出力は次のようになりますとき:

	int c = f.read();
	System.out.println((char)c);

INTは、(バイト[] B)を読み取ります。

より多くのバイトが読まれる読む方法どのように多くの値を返します
が、あなたが100それぞれを読めば、最終的にはわずか40、それは繰り返し100の逆数から読み取る、60を読んでます

	byte[] buffer = new byte[1024]
	int len = System.in.read(buffer);
	read读的所有IO操作都带着exception的异常处理或者抛出!

入力ストリームは、キャリッジの長さに来るそうならば、読む時間でバイトで、ここで注意も1以上、実際よ​​りも読みます

INTリード(バイト[] INTオフ、INT LEN)。

場所を選択

(長いn)はスキップ。

どのように多くのスキップ

利用可能INT();

また、読んで何かがあるどのくらいの流れを教えて

マーク();

マークを作るために読まれている場合

リセット();

バックマークが有効であるマークは一度だけ再生された最後の時間に

閉じる();

オフにしてください!それ以外の場合は、涙の2行!

読者

基本的には同じですが、水滴の滴の束を取り、水を一口と小唾液意味の束を取るの違い。
(または、食事の時間は、1メートル1メートルまたはメートル杭米の束の前に、今直接より便利に、ボウルのボウルをボウルを取得します)

int)が(読み;

しかし、文字ストリームの戻り値は非常に大きなことができる
JavaはAよりも偉大で0から60000に範囲内の2つのバイトをint型

其他操作基本一样

出力ストリーム

OutputWriter /ライター

op.write(バイトb)

このバイトは、内部に行くに書き込み、

書き込み(バイト[] b)に
書き込み(バイト[] B、INT開始、INT LEN)

同じ

但是对于Writer类。由于是字符,所以可以String形式。
像write(String s)这样来。

しかし、抽象基底クラス自体は、パッケージデザインの必要性てオブジェクトを作成することはできません。

Entityクラス

ノードクラス

直接ファイルの読み込みと書き込み

		FileOutputStream out = new FileOutputStream("文件地址或者File对象");
		out.write(buf)        //buf 是个byte[]  意思就是一次写入这么多个字节
		out.close();            //关了

文書ファイル------------- B
この接続チャネルの中央であります------

ラッパークラス

変換クラス

例えば、「UTF-8」をコードとしてバイト文字変換の種類、

InputStreamReaderの変換クラス
ファイルを読み込むときに、Javaのにバイト文字を理解することができます

OutputStreamWriter
Javaクラスの文字は、テキスト入力に変換バイト

例えば:

		fis = new FileInputStream("c:/temp/abc.txt");
		isr = new InputStreamReader(fis,"UTF-8");

A(ジャワ)======= ---- B(ターゲットファイル)

-通常のエンコーディングを参照
== UTF-8への手段
、それは、Java UTF-8によって理解されるようにBからAへの

デコレーション

既存のフローに基づいてフィルタリングパッケージ
読み込むために、より強力な機能と書き込み

例えば:

		DataOutputStream out = new DataOutputStream(
		new BufferedOutputStream(
		new FileOutputStream(file)));

DataInputStreamをDataOutputStreamのデータストリームとカプセル化するための
ダブルバイトの直接のInt 4バイトは自動的に8に変換するために出力してもよいが
、あなたが直接out.writeInt(I)この事をして出て、この方法は、実質的に直接内部を入れていますタイプではなく、バイト

別の例:

		fis = new FileInputStream("c:/temp/abc.txt");
		isr = new InputStreamReader(fis,"UTF-8");
		br = new BufferedReader(isr);	

BufferedInputStreamをBufferOutputStreamキャッシュバイトストリームが
、彼はメモリの読み取りで開くと、このような緩衝地帯を書きたいと言っているより速くすることができ
BufferedReaderの、BufferedWriterのキャッシュ文字ストリーム
バッファと、後はin.readLineような使い方を持つことができます
が、(ここで読みます)メソッドは、デフォルトの文字列の区切り文字はスペースで読まれます

公開された33元の記事 ウォン称賛26 ビュー2627

おすすめ

転載: blog.csdn.net/qq_43948583/article/details/89528278