java字節緩沖流和字符緩沖流
阿新 • • 發佈:2019-01-05
ati 操作 new str while pri tput 內部 創建
一.字節緩沖流
1.介紹
字節緩沖流根據流的方向,分為:
1.寫入數據到流中,字節緩沖輸出流 BufferedOutputStream
2.讀取流中的數據,字節緩沖輸入流 BufferedInputStream
它們的內部都包含了一個緩沖區,通過緩沖區讀寫,就可以提高了IO流的讀寫速度
2.字節緩沖輸出流BufferedOutputStream
構造方法:
public BufferedOutputStream(OutputStream out):創建一個新的緩沖輸出流,以將數據寫入指定的底層輸出流。
//字節輸出緩沖流 public static void method01() throwsIOException{ //創建基本的字節輸出流 FileOutputStream fos=new FileOutputStream("E:\\java\\demo.txt"); BufferedOutputStream bos=new BufferedOutputStream(fos); //寫數據 fos.write(100); //釋放資源 bos.close(); }
3.字節緩沖輸入流 BufferedInputStream
構造方法:
public BufferedInputStream(InputStream in)
//字節輸入緩沖流 public static void method02() throws IOException{ //創建緩沖流對象 FileInputStream fis=new FileInputStream("E:\\java\\demo.txt"); BufferedInputStream bis=new BufferedInputStream(fis); //讀數據 int len=0; while((len=bis.read())!=-1){ System.out.println((char)len); } //釋放資源 bis.close(); }
4. 復制文件
public static void method04() throws IOException{ //明確數據源 FileInputStream fis=new FileInputStream("E:\\java\\aaa.zip"); BufferedInputStream bis=new BufferedInputStream(fis); //明確目的地 FileOutputStream fos=new FileOutputStream("E:\\java\\a\\aaa.zip"); BufferedOutputStream bos=new BufferedOutputStream(fos); //開始復制 long time1=System.currentTimeMillis(); int len=0; byte[] ch=new byte[1024]; while((len=bis.read(ch))!=-1){ bos.write(ch,0,len); } long time2=System.currentTimeMillis(); System.out.println(time2-time1); //釋放資源 bos.close(); bis.close(); }
二.字符緩沖流
1.介紹
字符緩沖輸入流 BufferedReader
字符緩沖輸出流 BufferedWriter
完成文本數據的高效的寫入與讀取的操作
2.字符緩沖輸出流 BufferedWriter
void newLine() 根據當前的系統,寫入一個換行符
public static void method01() throws IOException{ //明確目的地 FileWriter fw =new FileWriter("E:\\java\\demo01.txt"); //添加緩沖流 BufferedWriter bw=new BufferedWriter(fw); //寫入文件 // windows: \r\n // linux: \n // newline(); System.out.println(System.in); bw.write("你好"); bw.newLine(); bw.flush(); bw.write("java"); bw.newLine(); bw.flush(); bw.write("中國"); bw.newLine(); //釋放資源 bw.close(); }
3.字符緩沖輸入流 BufferedReader
public String readLine() 讀取一個文本行,包含該行內容的字符串,不包含任何行終止符,如果已到達流末尾,則返回 null
public static void method02() throws IOException{ //明確數據源 FileReader fr=new FileReader("E:\\java0929\\demo01.txt"); //添加緩沖流 BufferedReader br=new BufferedReader(fr); //開始讀取文件 String line=br.readLine(); System.out.println(line); line=br.readLine(); System.out.println(line); line=br.readLine(); System.out.println(line); line=br.readLine(); System.out.println(line); //釋放資源 br.close(); }
public static void method03() throws IOException{ //明確數據源 FileReader fr=new FileReader("E:\\java\\demo01.txt"); //添加緩沖流 BufferedReader br=new BufferedReader(fr); //開始讀取文件 String line=null; while((line=br.readLine())!=null){ System.out.print(line); } //釋放資源 br.close(); }
4.復制文件
public static void copy() throws IOException{ //明確數據源 FileReader fr=new FileReader("E:\\java0929\\demo02.txt"); BufferedReader br=new BufferedReader(fr); //明確目的地 FileWriter fw=new FileWriter("E:\\java0929\\c\\demo02.txt"); BufferedWriter bw=new BufferedWriter(fw); //開始復制 String line=null; int linenum=0; while((line=br.readLine())!=null){ linenum++; bw.write(linenum+" "+line); bw.newLine(); bw.flush(); } //釋放資源 bw.close(); br.close(); }
java字節緩沖流和字符緩沖流