超牛牪犇Java之缓冲字符流&Properties集合

一.缓冲字符流

流的名称中: 前缀表示功能 后缀表示具体是什么流

1. BufferedWrite(Writer w)

        FileWriter  OutPutStreamWriter

        (传进来的是哪个流 就对哪个流高效)

特有的方法:newLine(); 是换行符 具有换行的作用

        该方法具有平台(操作系统)无关性

2. BufferedReader(Reader r)

缓冲字符流的写法:

private static void fun() throws IOException {
	FileWriter fw = new FileWriter("/Users/Commander/Desktop/test/MayDay.txt");
	//创建缓冲字符流	
	BufferedWriter bw = new BufferedWriter(fw);
	//写
	bw.write("啊啊啊啊啊啊啊啊啊");
	bw.newLine();
	bw.write("噢噢噢噢噢噢噢噢噢");
	//刷新(字符流都需要刷新)
	bw.flush();
	//关闭资源
	bw.close();
	}

BufferedReader特有的读取方法:

readLine 一行一行的读 读到换行符就算读完一行

private static void fun2() throws FileNotFoundException, IOException {
	// 返回来的字符串 不包含换行符
	//读完返回null
	FileReader fr = new FileReader("/Users/Commander/Desktop/test/MayDay.txt");
	BufferedReader br = new BufferedReader(fr);
	String string = "";
	while ((string = br.readLine()) != null) {
		System.out.println(string);
	}
}

二.Properties集合

properties是双列集合 是Hashtable的子类

该集合是集合中唯一能和IO流产生关系的集合

特有的添加方法:

private static void fun() {
	Properties properties = new Properties();
	//添加数据(特有方法 只能添加字符串)
	properties.setProperty("name", "张三");
	properties.setProperty("age", "16");
	Set<Object> keySet = properties.keySet();
	//遍历集合
	for (Object key : keySet) {
		String k = (String)key;
		System.out.println(k + "=" + properties.getProperty(k));
	}
	//枚举器
	Enumeration<?> names = properties.propertyNames();
	while (names.hasMoreElements()) {
		String key = (String)names.nextElement();
		System.out.println(key + "=" + properties.getProperty(key));
	}
}

特有的读取方法:

private static void fun() throws FileNotFoundException, IOException {
	//读取方法(load()加载)
	//读取文件 最终会把数据加载到集合中
	//文件格式 key=value
	Properties properties = new Properties();
	//文件名字规范:一般把properties集合可以直接加载的文件的后缀名都使用properties来标识
	FileInputStream fis = new FileInputStream("/Users/Commander/Desktop/test/taylor.properties");
	//把数据加载到集合当中
	properties.load(fis);
	//关闭流资源
	fis.close();
	System.out.println(properties);
}

硬编码是指:

直接在代码中进行赋值 即:String name = "Taylor";

//写 
		Properties properties = new Properties();
		//添加数据
		properties.setProperty("username", "taylor");
		properties.setProperty("password", "123456");
		//将集合中的数据写入到文件中
		//参数2 添加注释(一般什么都不写) 中文注释是乱码的
		FileOutputStream fos = new FileOutputStream("/Users/Commander/Desktop/test/taylor.properties");
		properties.store(fos, "haha");
		//关闭资源
		fos.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值