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の入力ストリームと出力ストリームの違い:
  入力ストリームに対しては読み取り操作のみ、出力ストリームに対しては書き込み操作のみを行う.プログラムでは、データ転送の特性に応じて異なるストリームが使用されます.
三、バイト入力ストリームと文字入力ストリームは実列を使用する

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)