文本数据的输入输出;
输入;数据流,缓冲流
输出;介绍向文本打印格式化的输出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
+++++反编译
??????????