java io 缓存读取_Java 文件IO写入读取四种方法
第一種:字節流?FileInputStream ?FileOutputStream
1.1 讀取操作
//先創建一個和硬盤連接的流(打通硬盤和內存的通道)
FileInputStream fis = new FileInputStream("D:\\Demo.txt");
//創建緩存區大小是1k
byte[] bytes = new byte[1024];
int data = 0; //存儲有效字節數
StringBuffer sb = new StringBuffer();
//由于文件大小通常遠遠大于緩沖區大小,所以要循環讀取
while((data = fis.read(bytes)) != -1){//返回-1則文件讀取完畢,停止循環讀取
String temp=new String(bytes,0,data);//讀取緩沖區的字節數,轉換成字符串
sb.append(temp);
System.out.printlb("====有效字節數===="+data);
}
System.out.printlb(sb.toString());
//關閉流
fis.close();
1.2 寫入操作
//創建一個讀取文件的流
FileOutputStream fos = new FileOutputStream("E:\\Demo.txt");
String temp = "海內存知己,天涯若比鄰。";
//把字符串分解成字節,填到字節數組中
byte[] bytes = temp.getBytes();
//寫入到指定路徑,沒有則創建文件
fos.write(bytes);
//關閉流
fos.close();
System.out.println("寫入成功!");
第二種:字符流 char ? FileReader FileWriter
tips:在不同操作系統和編碼方式下,char和byte之間的關系不是固定的
一般認為:gbk/gb2312 ? ? 2個byte
utf-8 ? ? ? ? ? ? ? ?3個byte
2.1 ?讀取操作
Reader fr = new FileReader("E:\\Demo.txt");char ch[] = new char[1024];
StringBuffer sbf= newStringBuffer();int length =fr.read(ch);while (length != -1) {
sbf.append(ch);
length=fr.read();
}
System.out.println(sbf.toString());
fr.close();
2.2 ?寫入操作
Writer fr = new FileWriter("D:\\Demo.txt");
fr.write("有朋自遠方來,不亦樂乎");
fr.close();
第三種:帶緩沖區的字符讀取和寫入方案
BufferedReader
BufferedWriter ?緩沖區 ?存儲的數據量默認是1024byte
3.1 ?讀取操作
Reader fr = new FileReader("D:\\Demo.txt");
BufferedReader br = new BufferedReader(fr);
String line = br.readLine();
while (line != null) {
System.out.println(line);
line = br.readLine();
}
br.close();
fw.close();
3.2 ?寫入操作
Writer fw = new FileWriter("D:\\Demo.txt",true);//true 為連續追加
BufferedWriter bw = new BufferedWriter(fw);
bw.write("學而時習之,不亦説乎");
bw.close();
fw.close();
第四種:二進制方式的讀取和寫入方案
DataInputStream
DataOutputStream
讀寫操作:復制粘貼
InputStream is = new FileInputStream("E:\\春暖花開.jpg");
DataInputStream dis = new DataInputStream(is);
OutputStream ops = new FileOutputStream("D:\\春暖花開.jpg");
DataOutputStream dos = new DataOutputStream(ops);
byte[] bytes = new byte[1024];
int date = 0;
while ((date = dis.read(bytes)) != -1) {
dos.write(bytes,0,date);
}
dos.close();
ops.close();
dis.close();
is.close();
System.out.println("復制成功");
總結
以上是生活随笔為你收集整理的java io 缓存读取_Java 文件IO写入读取四种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在HTML标签中 lt h5 gt 表示
- 下一篇: php 如何守护进程_PHP 如何实现守