フローノードは、現在のプログラムであり、ファイルまたはストリームは、直接ローカルファイル/データネットワーク、直接操作データのためのプログラムに接続されます。フローノードであっFileReaderを、てFileWriter、のFileInputStreamとのFileOutputStream。
FileReaderをとてFileWriter:文字のストリーム:
FileReaderのが一般的な方法:
1、INTは、READ():文字はint型、コンソールへのcharキャストのASCIIコードに対応する戻り、次いで、印刷された場合、読み出しファイルの終わり、および戻り値-1;
2、読むINT(CHAR [ ]データ)、読むために文字の数を返す読み取り文字はデータ配列に格納され、出力が横断することができるが、注意を払うの回数にメソッドの戻り値を横切る等しい、または最後に印刷結果は、問題を抱えている;
3、INTを読み出し(CHAR [] C、オフINT、INT LEN):文字の数が読み戻り、読み出し文字がに格納されているオフ位置len文字から始まります;データアレイ、出力を横断するが、戻り値を通過する回数に注意を払うにしてもよいが、プロセスに等しく、最終的な結果は、問題または印刷される
。JVMはない自動的に近い接続の流れを行います4、公共ボイド閉じる()にIOExceptionがスロー、そのリソースを閉じるには注意を払うようにしてください!
FileWriter共通の方法:
1、ボイド書き込み(INT c)は、単一の文字を書く;
2、ボイドライト(CHAR [] CBUF)書き込まれた文字配列;
3、空隙書き込み(CHAR [] CBUF、オフINT、INT LEN)は、文字列を書き込み一部。;書かれ始め、len文字から
4、無効書き込み(文字列STR)は、文字列を書き込みます;。
。5、無効書き込み(文字列STRは、オフint型、int型のlen)文字列の一部を書き込み、
6、公共のボイド閉じます()IOExceptionがスローされます:JVMは、そのリソースを閉じるには注意を払うにはわからない自動的に閉じ、接続ストリームではありません!
7、てFileWriter(ファイルfile、boolean型のフラグ):フラグ真の質量が追加された場合は、引数を渡さない場合は、虚偽またはパスカバレッジました。
例:コピーのテキストファイル
テストファイル、プロジェクト「Hello.txt」の下で:
张伟:123...
You have no ball!
テストカテゴリ:
package cn.jingpengchong.io;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
//1、创建File类对象
File srcfile = new File("Hello.txt");
File desfile = new File("Hello-copy.txt");
//2、创建FileReader/FileWriter类对象
FileReader reader = null;
FileWriter writer = null;
try {
reader = new FileReader(srcfile);
writer = new FileWriter(desfile);
char[] data = new char[5]; //指定一次读取多少个字符
//3、读入与写出操作
int read = reader.read(data);
while (read != -1){
writer.write(data,0,read);
//在控制台查看
for (int i = 0; i < read; i++) {
System.out.print(data[i]);
}
read = reader.read(data);
}
System.out.println("\n复制成功!!!");
} catch (Exception e) {
e.printStackTrace();
} finally {
//4、关闭资源
if(reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(writer != null){
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
結果は以下の通りである:
本プロジェクトの「Hello-copy.txt」ファイルの下で発生します:
バイトストリーム:のFileInputStreamとのFileOutputStream:
FileInputStreamのの一般的な方法:
図1は、INTリード():入力ストリームからデータの次のバイトを読み込み。ストリームの終わりに何バイトが利用可能でないため、到達した場合は、値を返す-1、
2、読む(バイト[]データ)がINT:データはバイト配列にdata.lengthアップバイトのストリームにこの入力から読み取ら。バイトがないので、ストリームの終わりに達した場合は、値-1を返します。そうでなければ、それはバイトの数が実際に整数として読み取る返し;
3、INT読む(バイト[] C、OFF intは、INTがLEN):lenバイトのデータの入力ストリームアップは、バイト配列に読み込まれたストリームに達した場合ためバイトの終わりで利用できない、値-1が返されます。それ以外の場合は、整数の数は実際に読み込まれたバイトを返し、
4、公共のボイド閉じる()はIOExceptionをスローします。JVMがない自動的に閉じるフローの接続を行い、それが近いリソースことに注意しなければなりません!
FileOutputStreamの一般的な方法:
1、ボイド書き込み(INT B)は単一バイトの書き込み;
2、空隙書き込み(バイト[] CBUF)バイト配列
書き込まれたバイト3、空隙書き込み(バイト[] CBUF、オフINT、INT LEN)。アレイの一部。;最初からオフ、lenバイトを書き込んだ
。JVMがない自動的に閉じるフローの接続を行い、それが近いリソースことに留意しなければならない:4、公共のボイド閉じる()することにIOExceptionがスローされます!
例:「02-動画.AVI」と「01-動画.AVI」ビデオファイルがデスクトップにコピーして、タイミング
package cn.jingpengchong.io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
//1、创建File类对象
File srcfile = new File("C:\\Users\\lenovo\\Desktop\\01-视频.avi");
File desfile = new File("C:\\Users\\lenovo\\Desktop\\02-视频.avi");
//2、创建FileReader/FileWriter类对象
FileInputStream reader = null;
FileOutputStream writer = null;
try {
reader = new FileInputStream(srcfile);
writer = new FileOutputStream(desfile);
byte[] data = new byte[1024];
//3、读入与写出操作
long start = System.currentTimeMillis();
int read = reader.read(data);
while (read != -1){
writer.write(data,0,read);
read = reader.read(data);
}
long end = System.currentTimeMillis();
System.out.println("复制成功!!!用时(毫秒):"+(end-start));
} catch (Exception e) {
e.printStackTrace();
} finally {
//4、关闭资源
if(reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(writer != null){
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
結果は以下の通りであります: