javaのIO点

JavaのI / O

まず、文字とバイト

1、バイトストリームと文字ストリーム
ストリームのバイトは、MB3、写真、テキスト、ビデオなどすべてのタイプのデータを扱うことができます。読み込む場合、読み込まれたバイトは、バイトを返します。
文字ストリームは、テキストなどのtxtとしてのみプレーンテキストデータを、することができます。読み込む場合、テーブルをコーディング特定を見つけるために、一の以上のバイトを読み、見つから文字を返します。

図2に示すように、文字バイト符号化
バイト(バイト)
ネットワークまたはメモリに情報を記憶する情報単位を超えるバイト物質伝達は、コンピュータ情報技術は、ストレージ容量および伝送容量を計量するための測定単位です。
1つのバイトは8つのバイナリ、すなわち、8ビットのバイナリ数に等しく、非常に特定の記憶空間です。
以下のような:0x01,0x45 ...
文字(CHAR)
文字は、人々が使用することを抽象的な意味でのシンボルのシンボルです。
以下のような: '1'、 '中'、 'A'、 '$' ...

図3に示すように、文字(文字セット)
、「文字セット」とも呼ばれる「コードします」。
ANSIは、さまざまな国や地域によって開発された標準をコードする、それぞれの言語の唯一の規定は必要「の文字を。」
例:中国語の文字は、韓国語の文字が格納されている方法を指定していない(GB2312)許可されます。:符号化規格ANSI指定のコンテンツは二つの意味が含まれ
、それらの文字の1.を。これは漢字、文字や記号が所得標準が何であるかです。コレクションの含まれる「文字」「文字セット」と呼ばれています。
各「文字」の2の規定は、それらがストレージのバイトを使用し、店舗に1バイトまたは複数バイトであり、このフォーマットの規定は、「符号化」と呼ばれます。
様々な国や地域コーディング標準を開発し、「結合文字」とほぼ同じ時刻に指定されている「エンコード」。外層は、また、「コーディング」の手段を含んでいることを意味する「文字の集合」に加えて、などGB2312、GBK、JIS、:したがって、我々は通常のような、「文字セット」と呼びます。

4、ANSIの
メモリ内の文字列、「文字」はANSIエンコーディングの形で存在する場合、文字がバイトを使用する場合があります以上は、私たちは、このビットのANSI文字列または文字列を呼び出し、表現するためにバイト文字列セクション。異なる符号化によって設定されたANSI規格では、与えられたマルチバイト文字列のために、我々はそれをしたコーディングルールは、それが含まれているかを知ることができるように使用されていることを知っている必要があり、そのため、同じではありません「の文字が。」

5、UNICODEの
「文字」はUNICODEのシーケンス番号である場合、メモリ内の文字列は、存在する場合、我々はこのビット列のUNICODE文字列またはワイド文字列を呼び出します。UNICODE文字列の場合は、彼がコンテンツを表し関係なく、どのような状況の下で、「文字」は常に同じです。標準を符号化するために用いられるUNICODE文字セットのような、多くのがあります:UTF-8、UTF-7 、UTF-16、UnicodeLittle、UnicodeBig のような。

第二に、ストリームバイトのデータを読み書きの使用

1、バイトストリーム

package IOUtil;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class TestStream {

    public static void main(String[] args) {

//      Fileinputstream可用方法
//      read()  --返回一个整型,即一个二进制数
//      read(byte[] b)  --传入字节数组,根据字节数组的大小,从文件中读取相应大小的内容放入字节数组中
//      read(byte[] int off,int len)    --传入定义了偏移量的字节数组,即定义了开始读取的位置以及读取长度

        try {
            FileInputStream fileInputStream=new FileInputStream("C:\\Users\\wjdri\\Documents\\GitHub\\html.txt");   
            byte input[]=new byte[5];  //这里字节大小不要超过文件大小
            fileInputStream.read(input);
            String inputString=new String(input,"gbk");  //java通常会以系统默认的字符集作为当前解码的方式,如果字符集不正确将会出现乱码
            System.out.println(inputString);

            fileInputStream.close()
//          有流的打开,读取最后应该有流的关闭
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }


    }

}

2、バイトストリームの書き込み
パッケージIOUtilを。

輸入java.io.FileNotFoundException。
輸入java.io.FileOutputStreamは、
インポートにjava.io.IOException;

パブリッククラスWriteByteStream {

public static void main(String[] args) {

    try {
        FileOutputStream fileOutputStream=new FileOutputStream("C:\\Users\\wjdri\\Documents\\GitHub\\htmlw.txt");

//メソッドたFileOutputStreamが含ま
//書き込み(バイト[] b)はダイレクトライトバイト配列
//書き込み(INT b)は直接バイト書き込み
、//ライト(バイト[] Bを INT LEN、オフint型)バイト配列を書き込み、オフセットバイト配列と書き込みの長さを定義します

        String outString="write 1234 写出数据";
        //这里为文本数组,如果需要输出其他格式数组也需要使用相应的方法将文件转换为相应的字节型数组
        byte output[]=outString.getBytes("UTF-8");
        fileOutputStream.write(output);

//アレイ出力/入力ストリームの終わりには、流れを閉塞するために覚えておく必要がある場合
fileOutPutStream.close()
}キャッチ(にFileNotFoundException E){
e.printStackTrace();
}キャッチ(IOExceptionをE){
e.printStackTrace();
}
}
}

図3は、入力と出力は、実装ファイルのコピーと一緒にストリーム

package IOUtil;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyByByteStream {
    public static void main(String[] args) {
        try {
            FileInputStream fileInputStream=new FileInputStream("C:\\Users\\wjdri\\Documents\\GitHub\\html.txt");
            FileOutputStream fileOutputStream=new FileOutputStream("C:\\Users\\wjdri\\Documents\\GitHub\\new_html.txt");

//          由于50个字节的大小无法装下所需要读取的文件,所以需要通过循环来读取
            byte input[] =new byte[50];

            while(fileInputStream.read(input)!=-1){//这里返回一个int,为所读取到的字节的长度,如果已经没有读取到了则返回0
                fileOutputStream.write(input);  
            }

            fileInputStream.close();
            fileOutputStream.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }
    }
}


リリース元の4件の記事 ウォンの賞賛0 ビュー1392

おすすめ

転載: blog.csdn.net/sumtre_w/article/details/53001639