JavaIOまとめノート基本バイト文字入出力ストリームとファイルコピー
8388 ワード
個人ブログ、個人、gitHubホームページ
一、IOシステム
1.ストリームは主に二つの種類に分けられる:バイトストリーム文字ストリーム
2.ハードディスク上のファイルは、すべてバイナリバイト形式で格納されているので、どんなファイルでも読み書き時にバイトストリームを使うべきです
3.javaの初期バージョンでは、確かにバイトストリームのみで、文字ストリームはありません.
4.数字やアルファベットが1バイト、漢字が2バイト、バイトストリームが1回に1バイト読み書きすると、中国語の文字化けしが発生しやすい
5.文字ストリームはテキストクラスのファイルの読み書きに特化しており、txt doc
6.バイトストリームは非テキストクラスのファイルを読み書きするのに適しており、mp 3 mp 4 avi rm rmvb mkv jpg png bmp
二、常用類(パイプ類)
三、バイトストリームの出力ストリームFileOutputStream
1.メモリのデータをハードディスクのファイルに出力する役割
2.構造方法
3.機能方法
4.バイトストリームを使用して改行をどのように出力しますか?システムを使用できます.getProperty(「line.separator」)を使用して、現在のシステムの改行記号を取得します.
5.追加と上書き方法デフォルトは上書きですコード例:
四、バイトストリームの入力ストリームFileInputStreamクラス
1.ハードディスクのデータをメモリに入力(読み出し)する
2.構造方法
3.機能方法コード例:
五、ファイルのコピー
1.先に読み込んだターゲットファイルのデータをコピーし、次に別のファイルに書き込む
2.コピーの仕方コード例:
六、文字ストリームの出力ストリームFileWriterクラス
1.ハードディスク(HDD)のあるファイルにメモリのデータを出力(書き込み)するテキストクラスにのみ適したファイル
2.構造方法
3.機能方法コード例:
七、文字ストリームの入力ストリームFileReaderクラス
1.ハードディスクのファイルのデータをメモリに入力(読み込み)
2.構造方法
3.機能方法コード例:
八、文字ストリームのバッファ
1.文字ストリームにバッファがあり、バイトストリームにバッファがない
2.バッファ:メモリ内の領域です
3.作用:効率を高め、ハードディスクに対する頻繁な読み書き保護ハードディスクを減少する
4.文字ストリームバッファのデフォルトサイズは8 K
5.パイプを閉じると、バッファ内のデータをハードディスク(HDD)に強制的に書き込みます.
6.public void flush()/クリアバッファ、強制書き込み
九、文字ストリームでファイルコピーを実現する
レプリケーションの方法
プロジェクトアドレス:転送ゲート
一、IOシステム
1.ストリームは主に二つの種類に分けられる:バイトストリーム文字ストリーム
2.ハードディスク上のファイルは、すべてバイナリバイト形式で格納されているので、どんなファイルでも読み書き時にバイトストリームを使うべきです
3.javaの初期バージョンでは、確かにバイトストリームのみで、文字ストリームはありません.
4.数字やアルファベットが1バイト、漢字が2バイト、バイトストリームが1回に1バイト読み書きすると、中国語の文字化けしが発生しやすい
5.文字ストリームはテキストクラスのファイルの読み書きに特化しており、txt doc
6.バイトストリームは非テキストクラスのファイルを読み書きするのに適しており、mp 3 mp 4 avi rm rmvb mkv jpg png bmp
二、常用類(パイプ類)
1. FileInputStream FileOutputStream
2. FileReader FileWriter
三、バイトストリームの出力ストリームFileOutputStream
1.メモリのデータをハードディスクのファイルに出力する役割
2.構造方法
FileOutputStream(File file)
FileOutputStream(String name)
3.機能方法
public void write(int b) ASCII ,
public void write(byte[] b) String getBytes
public void write(byte[] b, int off, int len)
4.バイトストリームを使用して改行をどのように出力しますか?システムを使用できます.getProperty(「line.separator」)を使用して、現在のシステムの改行記号を取得します.
5.追加と上書き方法デフォルトは上書きです
public static void writeFile() throws IOException {
// FileOutputStream
//1.
FileOutputStream fos1 = new FileOutputStream(new File("A03_FileOutputStreamTest.txt"));
//FileOutputStream fos2=new FileOutputStream("A03_FileOutputStreamTest.txt");
//2.
fos1.write(97);
fos1.write(98);
fos1.write(99);
fos1.write(100);
byte[] t = {97, 98, 'c'};
fos1.write(t);
fos1.write("hello".getBytes());
fos1.write("world".getBytes());
fos1.write("\r
".getBytes());
fos1.write(t, 0, 2);
fos1.close();
}
四、バイトストリームの入力ストリームFileInputStreamクラス
1.ハードディスクのデータをメモリに入力(読み出し)する
2.構造方法
FileInputStream(File file)
FileInputStream(String name)
3.機能方法
public int read() , , -1
public int read(byte[] b) , , -1
new String(byte[] b)
public static void readFile() throws IOException {
//1.
File f = new File("src\\com\\afinalstone\\file\\IOUtil.java");
InputStream fis = new FileInputStream(f);
//FileInputStream fis=new FileInputStream("src\com\afinalstone\file\IOUtil.java");
//2.
// public int read() , , -1
int res;
do {
res = fis.read();
System.out.println((char) res);
} while (res != -1);
//3.
fis.close();
}
public static void readFileByBufferByte() throws IOException {
//1.
File f = new File("src\\com\\afinalstone\\file\\IOUtil.java");
InputStream fis = new FileInputStream(f);
//FileInputStream fis=new FileInputStream("c:\\test\\hello.txt");
// public int read(byte[] b) ,
//2.
System.out.println(f.length());
byte[] t = new byte[(int) f.length()];
//3.
fis.read(t);
System.out.println(new String(t).trim());
//4.
fis.close();
}
五、ファイルのコピー
1.先に読み込んだターゲットファイルのデータをコピーし、次に別のファイルに書き込む
2.コピーの仕方
a. ,
b. , ,
public static void copy01_FileIOStream() throws IOException {
//a. ,
//1.
File f = new File(fileName_source);
FileInputStream fis = new FileInputStream(f);
//2.
byte[] t = new byte[(int) f.length()];
//3.
fis.read(t);
//4.
fis.close();
//1.
FileOutputStream fos = new FileOutputStream(fileName_destination);
//2.
fos.write(t);
//3.
fos.close();
}
public static void copy01_FileIOStreamBufferByte() throws IOException {
//b. ,
//1.
FileInputStream fis=new FileInputStream(fileName_source);
FileOutputStream fos=new FileOutputStream(fileName_destination);
//2.
// byte[] t=new byte[1*1024*1024]; //1M
byte[] t=new byte[8*1024]; //8k
//3. 1M 1M
while(true)
{
int res=fis.read(t); //
if(res==-1)
break;
fos.write(t,0,res); // ( )
}
//4.
fis.close();
fos.close();
}
六、文字ストリームの出力ストリームFileWriterクラス
1.ハードディスク(HDD)のあるファイルにメモリのデータを出力(書き込み)するテキストクラスにのみ適したファイル
2.構造方法
public FileWriter(File file)
public FileWriter(String fileName)
public FileWriter(File file,boolean append)
public FileWriter(String fileName,boolean append)
3.機能方法
public void write(String str)
public void write(char[] cbuf)
public void write(char[] b,int off, int len)
public static void writeFile() throws IOException {
// FileWriter
//1.
FileWriter fw=new FileWriter(new File("F03_FileReaderAndWriter.txt"));
//FileWriter fw=new FileWriter("c:\\test\\hello.txt");
//2.
fw.write("hello\r
");
char[] c={'a','b','c',100};
fw.write(c);
fw.write("\r
");
fw.write(c, 0, 2);
//3.
fw.close();
}
七、文字ストリームの入力ストリームFileReaderクラス
1.ハードディスクのファイルのデータをメモリに入力(読み込み)
2.構造方法
public FileReader(File file)
public FileReader(String fileName)
3.機能方法
public int read() ASCII , -1
public int read(char[] cbuf) , -1
public static void readFile() throws IOException {
// FileReader
//1.
File f=new File("fileName");
FileReader fr=new FileReader(f);
//FileReader fr=new FileReader("src\com\afinalstone\file\F03_FileReaderAndWriter.java");
//2.
int res;
do {
res=fr.read();
System.out.println((char)res);
} while (res!=-1);
//3.
fr.close();
}
public static void readFileByBufferChar() throws IOException {
// FileReader
//1.
File f=new File(fileName);
FileReader fr=new FileReader(f);
//FileReader fr=new FileReader("c:\\test\\hello.txt");
//2.
System.out.println(f.length());
char[] c=new char[(int)f.length()];
//3.
fr.read(c);
System.out.println(new String(c).trim());
//4.
fr.close();
}
八、文字ストリームのバッファ
1.文字ストリームにバッファがあり、バイトストリームにバッファがない
2.バッファ:メモリ内の領域です
3.作用:効率を高め、ハードディスクに対する頻繁な読み書き保護ハードディスクを減少する
4.文字ストリームバッファのデフォルトサイズは8 K
5.パイプを閉じると、バッファ内のデータをハードディスク(HDD)に強制的に書き込みます.
6.public void flush()/クリアバッファ、強制書き込み
九、文字ストリームでファイルコピーを実現する
レプリケーションの方法
a. ,
b. ,
public static void copy02_FileReaderWriter() throws IOException {
//1.
FileReader fr=new FileReader(fileName_source);
FileWriter fw=new FileWriter(fileName_destination);
//3.
while(true)
{
int res=fr.read();
if(res==-1)
break;
fw.write(res);
}
//4.
fr.close();
fw.close();
}
public static void copy02_FileReaderWriterBufferChar() throws IOException {
//
//1.
FileReader fr=new FileReader(fileName_source);
FileWriter fw=new FileWriter(fileName_destination);
//2.
char[] c=new char[1*1024]; //1K
//3.
while(true)
{
int res=fr.read(c);
if(res==-1)
break;
fw.write(c,0,res);
}
//4.
fr.close();
fw.close();
}
プロジェクトアドレス:転送ゲート