java中输入流和输出流以及property的使用

输入流和输出流的使用步骤分为以下三步:

1、创建输入流

2、创建输出流

3、读写数据

4、释放资源

不同的用法如以下代码所示:

public class Test3 {

	/**
	 * @param args
	 * @throws FileNotFoundException 
	 */
	public static void main(String[] args) throws IOException{
		method6();

	}

	private static void method6() throws IOException {
		//创建输入流对象
		InputStream is = System.in;
		Reader r = new InputStreamReader(is);
		//创建输出流对象
		FileWriter fw = new FileWriter("a.txt");
		//读写数据
		char [] chs = new char[1024];
		int len;
		while((len = r.read(chs)) != -1){
		  fw.write(chs,0,len);
		  fw.flush();
		}
		//释放资源
		fw.close();
		is.close();
	}

	private static void method3() throws FileNotFoundException, IOException {
		//创建输入流对象
		InputStream is = System.in;
		//创建输出流对象
		FileWriter fw = new FileWriter("a.txt");
		//读写数据
		byte[] bys = new byte[1024];
		int len;//用于存储读取到的字节个数
		while((len = is.read(bys)) != -1){
		fw.write(new String(bys,0,len));//读到几个写几个
		fw.flush();//刷新缓冲区
		}
		//释放资源
		fw.close();
		is.close();
	}

	private static void method2() throws FileNotFoundException, IOException {
		method4();
	}

	private static void method4() throws FileNotFoundException, IOException {
		//创建输入流对象
		BufferedReader br = new BufferedReader(new FileReader("Test2.java"));
		//创建输出流对象
		Writer w = new OutputStreamWriter(System.out); //多态
		//读写数据
		String line;
		while((line = br.readLine()) != null){
		  w.write(line);
		  w.write("\r\n");
		}
		//释放资源
		w.close();
		br.close();
	}

	private static void method1() throws FileNotFoundException, IOException {
		// TODO Auto-generated method stub
		//创建输入流对象
		BufferedReader br = new BufferedReader(new FileReader("Test2.java"));
		//创建输出流对象
		OutputStream os = System.out;
		//读写数据
		String line;
		while((line = br.readLine()) != null){
		  os.write(line.getBytes());
		  os.write("\r\n".getBytes());
		 }
		//释放资源
		os.close();
		br.close();
	}

}

二,对象流和properties的结合使用

properties类表示一个持久的属性集,属性列表中每个键及其对应的值
都是一个字符串类型。
//创建属性列表对象
Properties prop = new Properties();
//添加映射关系
prop.put("","")
prop.put("","")
prop.put("","")
//遍历属性列表
//获取所有的key,通过key获取value
Set<Object> keys = prop.keySet();
for(Object key:keys){
Object value = prop.get(key);
System.out.println(key + value)
}
//获取所有结婚证对象
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);
}
Properties和IO流结合的操作
//创建属性列表对象
Properties prop = new Properties();
//添加映射关系
prop.setProperty("","")
prop.setProperty("","")
prop.setProperty("","")
//创建打印流对象
PrintWriter out = new PrintWriter("a.txt");
prop.list(out);
//释放资源
out.close();
把文件中的数据读到集合中
//创建属性列表对象
Properties prop = new Properties();
//创建一个输入流对象
FileReader fr = new FileReader("a.txt");
prop.load(fr);
//释放资源
fr.close();
System.out.println(prop);

代码如下所示:

public class Test5 {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
                //将文件中的内容写入property中,非常方便
		//创建属性列表对象
		Properties prop = new Properties();
		//创建一个输入流对象
		FileReader fr = new FileReader("a.txt");
		prop.load(fr);
		//释放资源
		fr.close();
		System.out.println(prop);


	}

	private static void method2() throws FileNotFoundException {
                 //将property中的属性写入文件
		//创建属性列表对象
		Properties prop = new Properties();
		//添加映射关系
		prop.setProperty("ck123","wangwu");
		prop.setProperty("ji234","zhangsan");
		prop.setProperty("po789","lisi");
		//创建打印流对象
		PrintWriter out = new PrintWriter("a.txt");
		prop.list(out);
		//释放资源
		out.close();
	}

	private static void method1() {
                //property的使用
		//创建属性列表对象
		Properties prop = new Properties();
		//添加映射关系
		prop.put("zhangsan","123");
		prop.put("lisi","000001");
		prop.put("liliu","2345");
		//遍历属性列表
		//获取所有的key,通过key获取value
		Set<Object> keys = prop.keySet();
		for(Object key:keys){
		Object value = prop.get(key);
		System.out.println(key+","+ value);
		}
		//获取所有结婚证对象
		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);
		}
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值