Baiduの上でいくつかの説明を探します。
もちろん、:あなたが理解していない場合は、あなただけの次の三つの文章を覚えておく必要があります。
1。
(1)私たちは、自宅で誰もが水源から来ている水の植物の水への水の工場から水を飲んでいることを知って、
(2)パイプを介して水を含みます。
IOストリーム(3)だから水の中でも、理解することができます。
2.だから、JAVA IOはそれでストリーム。
(1)。Javaでは、Javaは水工場、水源がソースである、家の目的であります
参照//水植物については、私の水植物水源からの水の流れが外部から来ているように(2)ので、水が来て入力されます。(入力)
家庭用浄水場からの水は、浄水場(出力)から排出されます。
私のJavaから流出が出力ストリーム(のOutputStream)にあるとき、Javaプログラムのために、それは、つまり、入力ストリーム(入力ストリーム)、ソースからの流れの私のJavaに、同じです
(3)だから、すでに入力ストリーム(入力ストリーム)と出力ストリーム(OutputStreamの)Aが何であるかを知っています。
ルックバッファ下の図3
私たちは水を必要とする場合(1)、その後、水槽はより良い私たちを満たすために、我々は水が水を持ってみましょうことができるようにしたいです。水の効率を改善するために、
リザーバ(2)の.javaが(バッファ?)、バッファと呼ばれるデータベースの特定のタイプのコンテナ。
したがって、この(疑問符)?それは何を意味するのでしょうか?
私たちは、その後、Javaのバッファが自然に多くの種類が、例えば、最も一般的に使用され、そこにある、タンクの多くの種類があります知っています
我々はすでにのInputStream入力ストリームを知って、入力バッファは、のにBufferedInputStreamストリームです。
同様に、出力ストリームのOutputStream、次いでなBufferedOutputStreamは、バッファ出力ストリームです。
4.転流
(1)同様に、フィルタに対応し、転流をJAVA、符号化データ、変化記憶フォーマットである。次のように:
文字が指定された符号化形式で格納することができます。
あなたは、データを解釈するために、テキストエンコード形式を指定することができます
コンストラクタによって完成された特定の符号化テーブルの操作を
(2)。分为にInputStreamReaderのOutputStreamWriter
InputStreamReader
使用: InputStreamReader isr = new InputStreamReader(is, "gbk");
OutputStreamWriter
使用: OutputStreamWriter osw = new OutputStreamWriter(os, "ISO-8859-1");
IO流的分类:
介绍几个最主要的;分别是字符流,字节流,转换流。
(1).字节流
首先:字节流可划分为两类 输入流InputStream 输出流OutputStream
对于java来说:当对文件的读取的时候,使用FileInputStream;
对于java来说:当对文件的输出的时候。使用FileOutputStream;
(2).字符流
以下就是字符流的详细:
字符流是字节流的类似。
1.字符流分为 输入流 输出流
首先:字符流可划分为两类 输入流Reader 输出流Writer
对于java来说:当对文件的读取的时候,使用FileReader ;
对于java来说:当对文件的输出的时候。使用FileWriter;
如下,完成一个在f盘下的r.txt文件,再复制到f盘下的rrrr.txt;一个文件的复制,并改名;
(1)使用时先创建: new FileReader( 此处为String类型的需要读入数据文件地址 );
(2)创建一个缓冲区(缓冲区的创建能够提高文件的读取效率)
(3)使用时先创建: new FileWriter;( 此处为String类型的需要输出数据文件地址 );
(4).创建一个缓冲区(缓冲区的创建能够提高文件的读取效率)
(5).数据的读取:创建一个byte类型的数组,至于数组的长度建议为1024的倍数;
(6).数据的写入
(7).流的刷新与关闭:对于初学者记住,先刷新,后关闭。 而关闭的顺序,简单来讲你可以全部关闭,不会出错,
public class CopyDemo4 {
public static void main(String[] args) {
FileReader fr = null;
BufferedReader br = null;
FileWriter fw = null;
BufferedWriter bw = null;
try {
fr = new FileReader("f://rrrr.txt"); //创建输入流
br = new BufferedReader(fr);//创建输入流缓冲区
fw = new FileWriter("f://ww.txt");//创建输出流
bw = new BufferedWriter(fw);//创建输出流缓冲区
String readLine = null;
while ((readLine = br.readLine()) != null) {//数据的复制
bw.write(readLine);
bw.newLine();
bw.flush(); //刷新
}
} catch (IOException e) {//try catch异常
e.printStackTrace();
}
finally {
try {
if (fr != null) {
fr.close(); //流的关闭
}
if (br != null) {
br.close();
}
if (fw != null) {
fw.close();
}
if (bw != null) {
bw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
(3).转换流
(1).分类 两类
(2).使用
1.先创建输入流对象
InputStream is = new FileInputStream("e://a.txt");
2.创建转换流对象
输入流对象, 读出的编码
InputStreamReader isr = new InputStreamReader(is, "gbk");
3.创建输出流对象
OutputStream os = new FileOutputStream("d://asd.txt");
4.创建转换流对象
输 出流对象, 输出的编码
OutputStreamWriter osw = new OutputStreamWriter(os,"ISO-8859-1");
以上就是IO流的简单介绍
---------------------
作者:litGrey
来源:CSDN
原文:https://blog.csdn.net/luchenh/article/details/79050105
版权声明:本文为博主原创文章,转载请附上博文链接!