java文件寫入或追加續寫
代碼實例,例如:
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public static void main(String[] args){
//需要寫入的文件的路徑
String filePath = "D:/test.txt";
//寫入的文件的內容
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
//添加寫入文件的內容:1000個Map集合型數據
for(int i = 1;i <= 1000;i++){
Map<String,Object> map = new HashMap<String,Object>();
map.put("key_"+i, "value_"+i);
list.add(map);
}
try{
File file = new File(filePath);
FileOutputStream fos = null;
if(!file.exists()){
file.createNewFile();//如果文件不存在,就創建該文件
fos = new FileOutputStream(file);//首次寫入獲取
}else{
//如果文件已存在,那麼就在文件末尾追加寫入
fos = new FileOutputStream(file,true);//這裏構造方法多了一個參數true,表示在文件末尾追加寫入
}
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");//指定以UTF-8格式寫入文件
//遍歷list
for(Map<String,Object> map: list){
//遍歷Map
for(Map.Entry<String, Object> entry : map.entrySet()){
//以英文","逗號隔開多個寫入的str,每個Map寫一行
String str = entry.getKey()+"="+entry.getValue();
osw.write(str+",");
}
//每寫入一個Map就換一行
osw.write("\r\n");
}
//寫入完成關閉流
osw.close();
}catch (Exception e) {
e.printStackTrace();
}
}