总结一下:
在io流中
标准输入输出流:
public static final InputStream in:标准输入流;
public static final PrintStream out:标准输出流;
public static final InputStream in:字节输入流,用来读取键盘录入的数据;
public static final PrintStream out:字节输出流,将数据输出到命令行;
OutputStreamWriter:将字节输出流转换为字符输出流;
InputStreamReader:将字节输入流转换为字符输入流;
在这些流中创建时,需要什么就new什么,然后就可以使用对应的方法。
还有很好用的高效流:
BufferedInputStream( InputStreamReader( Inputstream in ) );
BufferedOnputStream( OnputStreamReader( Outputstream out) );
利用Properties存储键值对
将内容以键值对的形式存储到文件中,一般会用于配置文件,如用户登录时的账号和密码。
package com.xy;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
/*
* Properties:表示了一个持久的属性集,属性列表中每个键及其对应值都是一个字符串
*
* 构造方法:
* Properties()
*/
public class PropertiesDemo2 {
public static void main(String[] args) {
//创建属性列表对象
Properties prop = new Properties();
//添加映射关系
prop.put("number1", "zhangsan");
prop.put("number1", "lisi");
prop.put("number1", "wangwu");
//遍历属性列表
//获取所有的key,通过key获取value
Set<Object> keys = prop.keySet();
for (Object key : keys) {
Object value = prop.get(key);
System.out.println(key + "=" + value);
}
System.out.println("------------------");
//获取所有的结婚证对象
Set<Map.Entry<Object,Object>> entrys = prop.entrySet();
for (Map.Entry<Object, Object> entry : entrys) {
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + "=" + value);
}
}
}
编码问题:
编码表:把计算机底层的二进制数据转换成我们能看到的字符
-
ASCII
-
GB2312 --- GBK
-
Unicode 所有的字符都占2个字节
-
UTF-8 长度可变的码表
-
ANSI:本地编码表 gbk
-
Java中的字符串默认使用的ANSI(gbk)
-
乱码:编码保持前后一致即可解决