(3)練習拷貝文件java
import s20190517.ReaderTest3; import java.io.*; public class CopyDemo { public static void main(String[] args) { //建立文件 File file = new File("src\\s20190517\\ReaderTest3.java"); File file1 = new File("ReaderTest3.java"); Reader reader = null; Writer writer = null; try { reader = new FileReader(file); writer = new FileWriter(file1); int len = 1; char[] cs = new char[1024]; while ((len = reader.read(cs)) != -1) { writer.write(cs, 0, len); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (reader != null) { reader.close(); } if (writer != null) { writer.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
(4)高效輸入流數組
package s20190520; import java.io.*; public class BufferedReaderDemo { public static void main(String[] args) { //建立一個BufferedReader對象 BufferedReader reader=null; try { //注意BufferedReader構造器傳入的是Reader對象爲參數 reader=new BufferedReader(new FileReader("src\\s20190520\\CopyDemo.java")); /*//讀取一個文本行,邊界是null String s = reader.readLine(); System.out.println(s);*/ //使用循環讀取整個文件 String line=null; while ((line=reader.readLine())!=null){ System.out.println(line); } } catch (Exception e) { e.printStackTrace(); } finally { //外層關閉的時候內層自動關閉 if(reader!=null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
(5)高效輸出流3d
import java.io.*; public class BufferedWriterDemo { public static void main(String[] args) { //建立一個BufferedWriter對象 BufferedWriter writer=null; try { writer=new BufferedWriter(new FileWriter("a.txt")); writer.write("莫名我就喜歡你"); writer.newLine();//換行,要寫下一行的時候必須進行這個操做纔會換行 writer.flush();//刷新 } catch (Exception e) { e.printStackTrace(); } finally { //外層關閉的時候內層自動關閉 if(writer!=null){ try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
import java.io.*; public class BufferCopyDemo { public static void main(String[] args) { BufferedReader reader=null; BufferedWriter writer=null; try { reader=new BufferedReader(new FileReader("src\\s20190517\\ReaderTest3.java")); writer=new BufferedWriter(new FileWriter("ReaderTest3.java")); //定義一個讀取和被寫入的字符串 String line=null; //給字符串賦值,null做爲循環終止條件 while ((line=reader.readLine())!=null){ //每次寫入一行換行並刷新 writer.write(line); writer.newLine(); writer.flush(); } } catch (IOException e) { e.printStackTrace(); } finally { try { if(reader!=null){ reader.close(); } if(writer!=null){ writer.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
83.字節流對象
import java.io.*; public class OutputStreamDemo { public static void main(String[] args) { //建立一個輸出字節流 OutputStream out = null; try { byte[] bs={98,99,100,101,102}; //能夠new File或者直接寫文件名 out = new FileOutputStream(new File("aa.txt")); //寫入單個字符 out.write(98); //寫入整個數組 out.write(bs); //寫入數組的指定部分 out.write(bs,2,2); } catch (Exception e) { e.printStackTrace(); } finally { //關閉資源 if(out!=null){ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
字節流不須要flushblog
import java.io.*; public class InputStreamDemo { public static void main(String[] args) { InputStream in=null; try { in=new FileInputStream(new File("aa.txt")); //讀到的內容也是以assci碼顯示 int read = in.read(); //轉化爲字節,讀一個字節,若是是漢字或者其餘國家文字一次讀半個字符可能會出現亂碼 System.out.println((char)read); read = in.read(); System.out.println((char)read); } catch (Exception e) { e.printStackTrace(); } finally { if(in!=null){ try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
import java.io.*; import java.util.Arrays; public class InputStreamDemo1 { public static void main(String[] args) { InputStream in=null; try { in=new FileInputStream("aa.txt"); byte[] bs=new byte[6]; int len = in.read(bs); System.out.println("讀取的長度是"+len+" 讀取的內容是"+Arrays.toString(bs) +" 轉換成字符串打印"+new String(bs)); len = in.read(bs); System.out.println("讀取的長度是"+len+" 讀取的內容是"+new String(bs) ); } catch (Exception e) { e.printStackTrace(); } finally { if(in!=null){ try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class InputStreamDemo2 { public static void main(String[] args) { InputStream in=null; try { in=new FileInputStream("aa.txt"); //定義一個字符串,若是中間有漢字最好長度儘量長包括 byte[] bs=new byte[3]; //定義讀取的長度 int len = 0; while((len=in.read(bs))!=-1){ System.out.print(new String(bs,0,len)); } } catch (Exception e) { e.printStackTrace(); } finally { if(in!=null){ try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
拷貝二進制文件(如壓縮包、圖片)圖片
import java.io.*; public class CopyDemo1 { public static void main(String[] args) { OutputStream out=null; InputStream in=null; try { //建立字節流輸入對象,輸入須要讀取的對象參數 in=new FileInputStream(new File("C:\\Users\\cheung\\Desktop\\DCIM\\P90122-184132.jpg")); //建立字節流輸出對象 out=new FileOutputStream("P90122-184132.jpg"); //建立數組接收讀取的內容 byte[] bs=new byte[1024]; int len=0; while((len=in.read(bs))!=-1){ //將讀取的內容寫入輸出 out.write(bs,0,len); } } catch (Exception e) { e.printStackTrace(); } finally { try { if(in!=null){ in.close(); } if(out!=null){ out.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
84.高效緩衝字節流ci
import java.io.*; public class BufferedCopyDemo2 { public static void main(String[] args) { BufferedInputStream in=null; BufferedOutputStream out=null; try { in=new BufferedInputStream(new FileInputStream("C:\\Users\\cheung\\Desktop\\DCIM\\Selfie\\P80812-152904.jpg")); out=new BufferedOutputStream(new FileOutputStream("P80812-152904.jpg")); byte[] bs=new byte[1024]; //定義一個讀取長度標識 int len=0; while((len=in.read(bs))!=-1){ out.write(bs); } } catch (Exception e) { e.printStackTrace(); } finally { try { if(in!=null){ in.close(); } if(out!=null){ out.close(); } } catch (IOException e) { e.printStackTrace(); } } } }