(バイトストリームと文字ストリーム)変換ストリーム

変換フロー

変換ストリームとは、バイトストリームや文字ストリームの操作を実現できる機能変換のことです。たとえば、出力する場合、OutputStreamはコンテンツをバイト配列に変更して出力する必要があり、Writerは文字列を直接出力できるため、多くの人が考えています。異なるストリームタイプの変換操作を実現するには、変換メカニズムが必要です。このため、java.ioパッケージには次の2つのクラスがあります。

  • InouterSteamReader
//定义
public class InputStreamReader extends Reader
//构造方法
public InputStreamReader​(InputStream in)

 

  • OutputStreamWriter
//定义
public class OutputStreamWriter extends Writer
//构造方法
public OutputStreamWriter​(OutputStream out)

着信バイトストリームオブジェクト。アップキャストを使用してビット文字ストリームオブジェクトを変換します。

例:変換を観察する

public class Writer字符流输出 {
    public static void main(String[] args) throws IOException {
        File file = new File("F:"+File.separator+"Test"+File.separator+"test.txt");
        if(file.getParentFile().exists()){  //没有父路径
            file.getParentFile().mkdirs();  //创建一个父路径
        }
        OutputStream outputStream = new FileOutputStream(file);
        Writer writer = new OutputStreamWriter(outputStream);   //字节流变为了字符流
        writer.write("www.baidu.com");  //直接输出一个字符串,不需要转换为字节数组
        writer.close();
    }
}

OutputStreamクラスにはFileOutputStreamの直接サブクラスがあり、InputStreamにはFileInputstreamの直接サブクラスがありますが、FileWriterとFileReaderの間の継承関係を観察してみましょう。

//FileWrite
public class FileWriter extends OutputStreamWriter
//FileReader
public class FileReader extends InputStreamReader

FileReaderの継承構造

文字ストリームとバイトストリームの違いは、文字ストリームにはより多くのバッファがあり、実際にはプログラムの途中にある処理バッファを参照していることです。

 

おすすめ

転載: blog.csdn.net/weixin_46245201/article/details/112793908