HashSet(是由HashMap實現的)和HashMap(存入KV對)存儲機制一樣,查詢速度快。
HashMap實現的map map
都沒有線程安全性,
HashSet實現的Set接口 Set實現的Collection
HashMap實現的Map
Collection與Map是同級別的。
文件複製 用到緩衝區
package com.test;
import java.io.FileReader;
import java.io.FileWriter;
public class CopyFileDemo {
public static void main(String[] args) {
String srcFile="e:/aa.txt";
String tarFile="e:/bb.txt";
FileReader reader=null;
FileWriter writer=null;
try {
//讀取src文件的reader
reader=new FileReader(srcFile);
//寫入tar文件的fileWriter
writer=new FileWriter(tarFile);
//定義字符緩衝區
char[] buf=new char[1024];
int len=0;
while((len=reader.read(buf))!=-1){
writer.write(buf, 0, len);
}
//操作完畢之後要關流
} catch (Exception e) {
// TODO: handle exception
}finally{
try {
if(reader!=null){
reader.close();
}
if(writer!=null){
writer.close();
}
} catch (Exception e2) {
}
}
}
}
行分割符在java中可以通過 方法得到
系統屬性名是line.separator
不同平臺的行分隔符是不同的。
windows:\r\n
System.getProperty("line.separator");//執行系統屬性名
FileWriter:沒有緩衝區功能,本身沒有新增任何功能,繼承是的outputStreamWriter,
outputStreamWriter繼承的是Writer
writer(){
sun.nio.cs.StrenamEncoder.write(....);
}
BufferedWriter:對Writer進行了包裝,裏面定義緩衝區,提供官入單個字符
char[] String的效率
提高寫入效率。
等級樹結構object-Writer--BufferedWriter
close()方法:flushBuffer();
flushBuffer();清理緩衝區,將緩衝區數據寫入目的地址。
BufferedReader
繼承關係樹:object-->Reader-->BufferedReader-->LineNumberReader
FileReader
繼承關係樹:object-->Reader-->InputStreamReader-->FileReader
read(){
InputStreamReader.read(){
}
}
緩存區的引入是爲了避免對物理文件的頻繁讀取與寫入