Properties是hashtable的子类,是集合中和IO相结合的容器。
特点:可以用于键值对形式的配置文件。
该流提供了打印方法,可以将各种类型数据,原样打印。
字节打印流:
PrintStream
构造函数可以接收的参数类型:
1.File对象。File
2.字符串路径。String
3.字节输出流。OutputStream
字符打印流:
PrintWriter
构造函数可以接收的参数类型:
1.File对象。File
2.字符串路径。String
3.字节输出流。OutputStream
4.字符输出流。Writer
特点:可以用于键值对形式的配置文件。
在加载文件时需要数据有固定格式:键=值
练习:info.txt文件中的键值对形式数据存到集合中进行操作
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;
public class PropertiesDemo {
public static void main(String[] args) {
}
public void setAndGet() {
Properties prop = new Properties();
prop.setProperty("zhangsan", "20");
prop.setProperty("lisi", "30");
Set<String> names = prop.stringPropertyNames();
for(String s : names) {
System.out.println(s);
}
}
/*
* 将info.txt文件中的键值对形式数据存到集合中进行操作
* 1.用一个流和文件关联
* 2.读取一行数据,将该行数据用"="分割
* 3.等号左边作为键,右边作为值,存入的Properties集合中
*/
public void method_1() throws IOException {
BufferedReader bufr = new BufferedReader(new FileReader("info.txt"));
String line = null;
Properties prop = new Properties();
while((line=bufr.readLine()) != null) {
String[] arr = line.split("=");
prop.setProperty(arr[0], arr[1]);
}
bufr.close();
}
}
该流提供了打印方法,可以将各种类型数据,原样打印。
字节打印流:
PrintStream
构造函数可以接收的参数类型:
1.File对象。File
2.字符串路径。String
3.字节输出流。OutputStream
字符打印流:
PrintWriter
构造函数可以接收的参数类型:
1.File对象。File
2.字符串路径。String
3.字节输出流。OutputStream
4.字符输出流。Writer
示例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class PrintStreamDemo {
public static void main(String[] args) {
BufferedReader bufr = null;
PrintWriter out = null;
String line = null;
try {
bufr = new BufferedReader(new InputStreamReader(System.in));
out = new PrintWriter(System.out, true);
while((line = bufr.readLine()) != null) {
if(line.equals("over"))
break;
out.println(line.toUpperCase());
}
out.close();
bufr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}