Java学习笔记
1.输入输出流
输入流(InputStream)表示从一个源读取数据,输出流(OutputStream)表示向一个目标写数据
使用输入输出流读写数据
输出流写入文件
public static void main(String[] args) **throws Exception**{
File f = new File("a.txt");
FileOutputStream fop = new FileOutputStream(f);
OutputStreamWriter bw = new OutputStreamWriter(fop, "UTF-8");
// 写入字符
bw.writer("this is a simaple test");
// 追加字符
bw.append("中文输入");
bw.append("\r\n");
bwr.append("English");
bw.close();
fop.close();
}
输入流读取文件
FileInputStream fip = new FileInputStream(f);
InputStreamReader reader = new InputStreamReader(fip,"UTF-8");
BufferedReader br = new BufferedReader(reader);
StringBuffer sb = new StringBuffer();
String str;
while(( str = br.readLine())!= null){
sb.append(str);
System.out.println(str);
}
System.out.println(sb);
br.close();
fip.close();
-
FileInputStream,FileReader,BufferedReader是用来读取文件的类。
-
FileOutputStream,FileWriter,BufferedWriter是用来写入文件的类。
-
使用BufferedReader和BufferedWriter可以提高读写文件的效率,因为它们使用了缓冲区
-
InputStreamReader的read()方法返回的是一个整数,该方法读取类型为字符类型,这个整数表示字符的Unicode值
2.读写yaml文件
引入包
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>2.10.0</version>
</dependency>
读写yaml文件
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
Map<String,Object> yamlData = mapper.readValue(new File("mydata.yaml"), Map.class);
//输出数据
System.out.println(yamlData);
// 使用for循环遍历数据
for(String str:yamlData.keySet()){
System.out.print(str + " value="+ yamlData.get(str));
System.out.println();
}
for(Object value: yamlData.values()){
System.out.println(value + "---------");
}
//使用forEach()遍历
yamlData.forEach((key,vlaue) -> {
System.out.print("key " + key + " value=" + vlaue);
System.out.println();
System.out.println("---------");
});
yamlData.put("newKey", "newValue");
mapper.writeValue(new File("mydata.yaml"), yamlData);
3读写Json文件
引入包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.0</version>
</dependency>
读写json文件
// 读取json 文件中的数据
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> jsonData = mapper.readValue(new File("mydata.json"), Map.class);
System.out.println(jsonData);
jsonData.put("newKey", "newValue");
mapper.writeValue(new File("mydata.json"), jsonData);