Java IO操作の文字符号化
説明
Java開発において、最も一般的な符号化タイプはISO 8859-1、GBK/GB 2312、Unicode、UTF-8などの符号化フォーマットである. ISO 8859-1:単バイトコードに属し、0~255の文字範囲しか表示できない.主に英語に応用される. GBK/GB 2312:中国語コードに属し、漢字を表すために専用され、2バイトコードである.GBKは簡体字中国語と繁体字中国語を表すことができる.GB 2312は簡体字中国語のみを表し、GBKはGB 2312と互換性がある. Unicode:Javaでこの符号化を使用するのは、最も標準的な符号化であり、16進数符号化を使用するが、ISO 8859-1とは互換性がない. UTF:UTFはISO 8859-1に対応しており、同僚はすべての言語文字を表すために使用することができ、UTF符号化は不定長であり、各文字は1~6バイトである.一般的に中国語のWebページでこのコードを使用すると、スペースを節約できます.
ネイティブのエンコード表示を取得
システムクラスにより、システムに関する情報を取得できます.
コンソール出力:
コンソールの出力が多すぎるため、一部を切り取ります
ストリームによるエンコーディング
Java開発において、最も一般的な符号化タイプはISO 8859-1、GBK/GB 2312、Unicode、UTF-8などの符号化フォーマットである.
ネイティブのエンコード表示を取得
システムクラスにより、システムに関する情報を取得できます.
public class Demo {
public static void main(String[] args) {
//
System.getProperties().list(System.out);
//
System.out.println( System.getProperty("file.encoding") ); // GBK
}
}
コンソール出力:
コンソールの出力が多すぎるため、一部を切り取ります
-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=D:\JDK\jdk1.8.0_91\jre\bin
java.vm.version=25.91-b15
java.vm.vendor=Oracle Corporation
java.vendor.url=http://java.oracle.com/
path.separator=;
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg=sun.io
user.script=
user.country=CN
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=
java.vm.specification.name=Java Virtual Machine Specification
user.dir=E:\WorkspaceEclipse\java8Study
java.runtime.version=1.8.0_91-b15
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=D:\JDK\jdk1.8.0_91\jre\lib\endorsed
os.arch=amd64
java.io.tmpdir=C:\Users\Wayfreem\AppData\Local\Temp\
line.separator=
ストリームによるエンコーディング
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class Demo {
public static void main(String[] args) throws Exception {//
File file = new File("e:" + File.separator + "demo" + File.separator + "my.txt");
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
OutputStream out = new FileOutputStream(file);
// out.write(" ".getBytes());//
out.write(" ".getBytes("ISO8859-1"));//
out.close();
}
}