Java inputstream和outputstream使用詳解
計算機在進行I/O時都是以流的形式來進行,Java中所有流的相關操作的類,都繼承自以下四個抽象類。
輸入流 | 輸出流 | |
字節流 | InputStream | OutputStream |
字符流 | Reader | Writer |
InPutStream的實現
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; public class TestFileInPutStream { public static void main(String[] args) { try { File file = new File("D:/test/testIO.java"); // 如果文件存在,讀取文件中的內容,並在控制臺輸出 if (file.exists()) { InputStream in = new FileInputStream(file); int a = 0; while ((a = in.read()) != -1) { System.out.print((char) a); } in.close(); } else { // 如果文件不存在返回文件不存在 System.out.println("文件不存在"); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
在D盤已經存在testIO文件如下:
將文件中的內容輸出到控制臺,結果如下:
OutPutStream的實現
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class TestOutPutStream { private static InputStream in; private static OutputStream out; public static void main(String[] args) { try { in = new FileInputStream("D:/test/testIO.java"); if(in == null){ //原文件不存在 System.out.println("原文件不存在"); }else{ //原文件存在,判斷目標文件是否存在 File file = new File("D:/test/testIOO.txt"); if(!file.exists()){ //目標文件不存在,創建目標文件 file.getParentFile().mkdirs(); file.createNewFile(); } //將原文件內容讀取到目標文件 out = new FileOutputStream(file); int a = 0; while((a = in.read()) != -1){ out.write(a); } } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //流關閉 try { if(in != null){ in.close(); } if(out != null){ out.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
D盤中原文件存在,在D盤中創建瞭目標文件
註意:在判斷原文件是否存在時,直接判斷字節流文件對象是否存在
到此這篇關於Java inputstream和outputstream使用詳解的文章就介紹到這瞭,更多相關Java inputstream和outputstream內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 圖文詳解Java中的字節輸入與輸出流
- idea中使用Inputstream流導致中文亂碼解決方法
- 新手瞭解java IO基礎知識(二)
- Java try()語句實現try-with-resources異常管理機制操作
- java服務器的簡單實現過程記錄