java 輸出輸入流
阿新 • • 發佈:2019-02-06
首先說下位元組流和字元流的區別:
java 位元組流與字元流的區別
http://blog.csdn.net/cynhafa/article/details/6882061
結論:字元流使用了緩衝區(因此需關閉程式如out.close()或者out.flush()),而位元組流沒有使用緩衝區。
所有的檔案在硬碟或在傳輸時都是以位元組的方式進行的,包括圖片等都是按位元組的方式儲存的,而字元是隻有在記憶體中才會形成,所以在開發中,位元組流使用較為廣泛。
流分類:
1.Java的位元組流
InputStream是所有位元組輸入流的祖先,而OutputStream是所有位元組輸出流的祖先。
2.Java的字元流
Reader是所有讀取字串輸入流的祖先,而writer是所有輸出字串的祖先。
InputStream,OutputStream,Reader,writer都是抽象類。所以不能直接new
我寫這個純屬是做筆記,有不對的地方歡迎指正。本人小白一枚...............
首先上一個例項
建議:如果想詳細瞭解可以看看JDK API我這裡就不詳細介紹了有興趣的可以訪問:點選開啟連結import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import org.apache.log4j.Logger; /** * * @author M-Y */ public class FileTest { public static final Logger logger = Logger.getLogger(FileTest.class); public static void main(String[] args) throws FileNotFoundException, IOException{ //例項化一個檔案物件 File mydir = new File("D:"+File.separator+"fileTest"); //如果檔案不存在,則新建一個資料夾 if(!mydir.exists()){ mydir.mkdir(); } System.out.println("新建資料夾名稱"); System.out.println(mydir.getName()); System.out.println("獲取資料夾絕對路徑"); System.out.println(mydir.getAbsolutePath()); System.out.println("路徑分隔符"); System.out.println(mydir.separator); //在上面這個資料夾下面建立一個檔案 File myfile = new File("D:"+File.separator+"fileTest"+File.separator+"file.txt"); //如果檔案不存在,則建立一個檔案 if(!myfile.exists()){ try { myfile.createNewFile(); } catch (IOException ex) { logger.info(ex.getMessage()); ex.printStackTrace(); } } //寫入資料到檔案 true表示保留檔案原有資料,新資料追加至結尾處 FileOutputStream out = new FileOutputStream(myfile,true); out.write("向檔案中寫入資料".getBytes("utf-8")); out.close(); //從檔案中讀取資料 FileInputStream input = new FileInputStream(myfile); byte[] buffer = new byte[1000]; int b = input.read(buffer, 0, 1000); System.out.println("寫入檔案的內容"); System.out.println(new String(buffer,0,b)); File[] files = mydir.listFiles(); System.out.println("通過目錄來訪問目錄下的這個檔案-檔名-檔案最後一次修改時間"); for(File file : files){ System.out.println(file.getName()); System.out.println(new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(file.lastModified())); } } }