文本流与字符集

文本数据的输入输出;

          输入;数据流,缓冲流

 

      输出;介绍向文本打印格式化的输出PrintWrite();

 

package 文本流;

import java.io.FileNotFoundException;
import java.io.PrintWriter;

/**
 * 文本流
 * @author Administrator
 *
 */
public class DemoPritf {

	public static void main(String[] args) {
		
		try {
			//创建文本写入流
			PrintWriter pw = new PrintWriter("F:Raf.txt");
			pw.println("hello");
			pw.println("java");
			pw.println("5");
			pw.close();
			
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 上述代码会在指定的位置创建文件,并输出上述字符

 

 

 

+++++++字符集Charset   CharsetEncode

       JAVA核心技术I 对字符集做了很大篇幅的介绍 个人认为字符集是一个很复杂的问题,我一直研究到现在还没有搞清楚字符集的装换问题,可能还需要时间吧,现将我理解的分享出来共享一下

 

 

1),字符集区分大小写;使用java找出某字符集的别名

package 文本流与字符集;

import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.util.Set;
import java.util.SortedMap;

public class DemoCharset {

	public static void main(String[] args) {
		//找出字符串的别名
		Charset cast = Charset.forName("iso-8859-1");
                 // aliases返回包含此 charset 各个别名的集合。
		Set<String> set = cast.aliases();
		for(String name:set){
			System.out.println(name);
		}
		
	}
}

 上面的代码可以找出iso-8859-1的其他名称

 

2),

获取字符集的名称

		//获取字符集的名字
		SortedMap<String, Charset> set =  Charset.availableCharsets();
		for(String name:set.keySet()){
			System.out.println(name);
		}

 

 

3),字符的编译与反编译;

package 文本流与字符集;

import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.util.Set;
import java.util.SortedMap;

public class DemoCharset {

	public static void main(String[] args) {
		System.out.println("-----编译");
		System.out.println("\r");
		// 将 Unicode 编译为字符集
		// 返回指定 charset 的 charset 对象
		Charset cast = Charset.forName("iso-8859-1");
		String str = "字符串编码字符串编码";
		// 将此 charset 中的 Unicode 字符编码成字节的便捷方法。
		ByteBuffer bb = cast.encode(str);
		byte[] by = bb.array();
		// 得到字符编码
		for (int ii = 0; ii < by.length; ii++) {
			System.out.print(by[ii]);
		}
		System.out.println("\r");
		System.out.println("+++++反编译");
		System.out.println("\r");
		// 反编译
		// 将 byte 数组包装到缓冲区中。
		ByteBuffer bytebuffer = ByteBuffer.wrap(by, 0, by.length);
		// 将此 charset 中的字节解码成 Unicode 字符的便捷方法
		CharBuffer cb = cast.decode(bytebuffer);
		// 本地字符集的方案无法表示所有的,用?表示
		System.out.println(cb.toString());
		for (int i = 0; i < cb.length(); i++) {
			// System.out.println(cb.charAt(i));

		}
	}
}

 

运行结果;

-----编译


63636363636363636363

+++++反编译


??????????

 

 

你可能感兴趣的:(PrintWrite()的使用,字符集名字 别名获取)