Java IOストリーム(1)
5886 ワード
一、IO流の概念
ジルコニウムストリームは抽象的な概念である.Javaプログラムがデータソースからデータを読み込む必要がある場合、データソースへのストリームが開きます.データ・ソースは、ファイル、メモリ、またはネットワークなどです.同様に、プログラムが目的地にデータを出力する必要がある場合も同様にストリームが開き、データ目的地はファイル、メモリ、ネットワークなどであってもよい.ストリームの作成は、データの入出力をより容易に処理するために行われる.
二、IO流の分類
2.1操作データによって、バイトストリームと文字ストリームに分けられます.たとえば、ReaderとInpurStream、文字ストリームとバイトストリームの違い:
2.1.1読み書き単位が異なります.バイトストリームは1バイト(8 bit)単位で、文字ストリームは文字単位で、コードテーブルに基づいて文字をマッピングし、一度に複数バイトを読むことができます.
2.1.2処理対象が異なる:バイトストリームはすべてのタイプのデータ(例えばピクチャ、avi)を処理することができ、文字ストリームは文字タイプのデータしか処理できない.
2.1.3バイトストリーム操作の場合自体はバッファは使用されず,ファイル自体への直接操作である.文字ストリームは、操作時にバッファを使用し、バッファを介してファイルを操作します.
2.2フロー別:入力フローと出力フロー.たとえば、InputStreamとOutputStreamの入力ストリームと出力ストリームの違い:
入力ストリームに対しては読み取り操作のみ、出力ストリームに対しては書き込み操作のみを行う.プログラムでは、データ転送の特性に応じて異なるストリームが使用されます.
三、バイト入力ストリームと文字入力ストリームは実列を使用する
四、バイト出力ストリームと文字出力ストリームは実列を使用する
五、ケースファイルのコピー
あまり上手ではありませんが、問題があったり、分からないことがあったら、皆さんの伝言を歓迎します.
Java IOストリーム(2)
ジルコニウムストリームは抽象的な概念である.Javaプログラムがデータソースからデータを読み込む必要がある場合、データソースへのストリームが開きます.データ・ソースは、ファイル、メモリ、またはネットワークなどです.同様に、プログラムが目的地にデータを出力する必要がある場合も同様にストリームが開き、データ目的地はファイル、メモリ、ネットワークなどであってもよい.ストリームの作成は、データの入出力をより容易に処理するために行われる.
二、IO流の分類
2.1操作データによって、バイトストリームと文字ストリームに分けられます.たとえば、ReaderとInpurStream、文字ストリームとバイトストリームの違い:
2.1.1読み書き単位が異なります.バイトストリームは1バイト(8 bit)単位で、文字ストリームは文字単位で、コードテーブルに基づいて文字をマッピングし、一度に複数バイトを読むことができます.
2.1.2処理対象が異なる:バイトストリームはすべてのタイプのデータ(例えばピクチャ、avi)を処理することができ、文字ストリームは文字タイプのデータしか処理できない.
2.1.3バイトストリーム操作の場合自体はバッファは使用されず,ファイル自体への直接操作である.文字ストリームは、操作時にバッファを使用し、バッファを介してファイルを操作します.
2.2フロー別:入力フローと出力フロー.たとえば、InputStreamとOutputStreamの入力ストリームと出力ストリームの違い:
入力ストリームに対しては読み取り操作のみ、出力ストリームに対しては書き込み操作のみを行う.プログラムでは、データ転送の特性に応じて異なるストリームが使用されます.
三、バイト入力ストリームと文字入力ストリームは実列を使用する
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
public class InputStreamAndReader {
public static void main(String[] args) {
InputStreamAndReader inputStreamAndReader = new InputStreamAndReader();
inputStreamAndReader.inputStreamExample();
inputStreamAndReader.readerExample();
}
public void inputStreamExample(){
//D txt hello
File f=new File("D:"+File.separator+"hello.txt");
InputStream inputStream = null;
//IO try-catch
try {
inputStream=new FileInputStream(f);
byte[] bs=new byte[inputStream.available()];
inputStream.read(bs);
System.out.println(" :"+new String(bs));
} catch (Exception e) {
}finally{
//
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void readerExample(){
//D txt hello
File f=new File("D:"+File.separator+"hello.txt");
Reader reader=null;
//IO try-catch
try {
reader=new FileReader(f);
char[] cs=new char[1024];
reader.read(cs);
reader.close();
System.out.println(" :"+new String(cs));
} catch (Exception e) {
}finally{
//
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
四、バイト出力ストリームと文字出力ストリームは実列を使用する
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.Writer;
public class OutputStraemAndWriter {
public static void main(String[] args){
OutputStraemAndWriter outputStraemAndWriter=new OutputStraemAndWriter();
outputStraemAndWriter.writerExample();
outputStraemAndWriter.outputStreamExample();
}
public void outputStreamExample(){
// D ,
File f=new File("D:"+File.separator+"hello.txt");
OutputStream outputStream = null;
//IO try-catch
try {
outputStream=new FileOutputStream(f);
outputStream.write("Hello World1".getBytes());
} catch (Exception e) {
}finally{
//
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void writerExample(){
// D ,
File f=new File("D:"+File.separator+"hello.txt");
Writer writer = null;
//IO try-catch
try {
writer=new FileWriter(f);
writer.write("Hello World2".toCharArray());
} catch (Exception e) {
}finally{
//
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
五、ケースファイルのコピー
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Copy {
public static void main(String[] agrs){
Copy copy=new Copy();
copy.copyExample("D:"+File.separator+"hello.txt", "D:"+File.separator+"hello5.txt");
}
// ,
public void copyExample(String address1,String address2){
File f1=new File(address1);
File f2=new File(address2);
InputStream inputStream=null;
OutputStream outputStream=null;
try {
inputStream=new FileInputStream(f1);
outputStream=new FileOutputStream(f2);
byte[] bs=new byte[1024];
int length=-1;
// , 1024 , length -1
while((length=inputStream.read(bs))!=-1){
outputStream.write(bs,0,length);
}
} catch (Exception e) {
}finally{
//
try {
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
あまり上手ではありませんが、問題があったり、分からないことがあったら、皆さんの伝言を歓迎します.
Java IOストリーム(2)