Java中的緩沖流詳細解析
緩沖流
緩沖流可以分為字節(jié)緩沖流,字符緩沖流,字節(jié)緩沖流可分為字節(jié)輸?入緩沖流,字節(jié)輸出緩沖流,字符緩沖流可以分為字符輸入緩沖流,字符輸出緩沖流。
BufferedInputStream 字節(jié)輸入緩沖流
使用字節(jié)流作為基礎(chǔ)管道的基礎(chǔ)上,提供了一個緩沖區(qū),在訪問硬盤時緩沖區(qū)可以一次性存入多個字節(jié),從緩沖區(qū)中將數(shù)據(jù)讀入到字節(jié)流中,再到程序內(nèi)存中。
import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; public class Test4 { public static void main(String[] args) { File file = new File("C:/Users/73981/Desktop/test.txt"); InputStream inputStream; try { inputStream = new FileInputStream(file); BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); // int temp = 0; // while((temp = bufferedInputStream.read())!=-1) { // System.out.println(temp); // } byte[] bytes = new byte[1024]; int length = bufferedInputStream.read(bytes,10,10); for(byte byt:bytes) { System.out.println(byt); } bufferedInputStream.close(); inputStream.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
BufferedReader 字符輸入緩沖流
readLine()方法可以直接讀取一整行數(shù)據(jù)
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; public class Test { public static void main(String[] args) { InputStream inputStream = null; Reader reader = null; BufferedReader bufferedReader = null; try { inputStream = new FileInputStream("C:/Users/73981/Desktop/test.txt"); reader = new InputStreamReader(inputStream); // Reader reader = new FileReader("/Users/southwind/Desktop/test.txt"); bufferedReader = new BufferedReader(reader); String str = null; while((str = bufferedReader.readLine())!=null) { System.out.println(str); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { bufferedReader.close(); reader.close(); inputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.Reader; public class Test { public static void main(String[] args) { File file = new File("C:/Users/73981/Desktop/test.txt"); try { Reader reader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(reader); // String str = ""; // while((str = bufferedReader.readLine())!=null) { // System.out.println(str); // } // int temp = 0; // while((temp = bufferedReader.read())!=-1) { // System.out.println(temp); // } char[] chars = new char[1024]; int length = bufferedReader.read(chars,10,10); for(char cha:chars) { System.out.println(cha); } bufferedReader.close(); reader.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
BufferedOutputStream 字節(jié)輸出緩沖流
import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class Test { public static void main(String[] args) { File file = new File("C:/Users/73981/Desktop/test.txt"); try { OutputStream outputStream = new FileOutputStream(file); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream); String str = "字節(jié)輸入緩沖流,使用字節(jié)流作為基礎(chǔ)管道的基礎(chǔ)上,提供了一個緩沖區(qū),在訪問硬盤時緩沖區(qū)可以一次性存入多個字節(jié),從緩沖區(qū)中將數(shù)據(jù)讀入到字節(jié)流中,再到程序內(nèi)存中。"; byte[] bytes = str.getBytes(); bufferedOutputStream.write(bytes,10,10); bufferedOutputStream.flush(); bufferedOutputStream.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
BufferedWriter 字符輸出緩沖流
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; public class Test { public static void main(String[] args) { Writer writer = null; BufferedWriter bufferedWriter = null; try { writer = new FileWriter("C:/Users/73981/Desktop/test.txt"); bufferedWriter = new BufferedWriter(writer); String str = "字節(jié)輸入緩沖流,使用字節(jié)流作為基礎(chǔ)管道的基礎(chǔ)上,提供了一個緩沖區(qū),在訪問硬盤時緩沖區(qū)可以一次性存入多個字節(jié),從緩沖區(qū)中將數(shù)據(jù)讀入到字節(jié)流中,再到程序內(nèi)存中。"; bufferedWriter.write(str, 5, 15); bufferedWriter.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { bufferedWriter.close(); writer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
到此這篇關(guān)于Java中的緩沖流詳細解析的文章就介紹到這了,更多相關(guān)Java中的緩沖流內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot與vue實現(xiàn)文件導(dǎo)入方法具體介紹
文件導(dǎo)入時大多數(shù)項目無法回避的問題,這兩天深入學(xué)習(xí)了文件導(dǎo)入,在這里進行記錄,使用到的技術(shù)是Springboot+Vue,前端組件使用el-upload2023-02-02SpringBoot WebService服務(wù)端&客戶端使用案例教程
這篇文章主要介紹了SpringBoot WebService服務(wù)端&客戶端使用案例教程,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-10-10Java之使用POI教你玩轉(zhuǎn)Excel導(dǎo)入與導(dǎo)出
這篇文章主要介紹了Java之使用POI教你玩轉(zhuǎn)Excel導(dǎo)入與導(dǎo)出,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10SpringBoot中使用JdbcTemplate訪問Oracle數(shù)據(jù)庫的案例詳解
JdbcTemplate是Spring框架中的一個核心類,用于簡化Java應(yīng)用程序與關(guān)系型數(shù)據(jù)庫的交互操作,本文給大家介紹SpringBoot中使用JdbcTemplate訪問Oracle數(shù)據(jù)庫的方法,感興趣的朋友跟隨小編一起看看吧2023-10-10