1. 程式人生 > >Java IO流之普通檔案流和隨機讀寫流區別

Java IO流之普通檔案流和隨機讀寫流區別

普通檔案流和隨機讀寫流區別

FileInputStream和FileOutputStream

FileReader和FileWriter
RandomAccessFile

兩者區別:

1.流向分類差別

普通檔案流:分輸入流和輸出流

隨機讀寫流:既是輸入流也是輸出流

2.基本方法區別

普通檔案流:擁有所有共性方法,
    比如read(),write(),close(),flush(),skip()等等方法
隨機讀寫流:除了擁有這些共性方法,還有自己特有的方法,
    比如readLine(),seek(),skipBytes()等等方法
    特別注意:隨機讀寫流沒有flush()方法

3.構造方法區別

普通檔案流:
1)輸入流:引數都檔案路徑
FileInputStream(File file)     
FileInputStream(String name) 
2)輸出流:引數1--都是檔案路徑;
    FileOutputStream(File file)
    FileOutputStream(String name) 

引數2 append:
true時--寫入時不覆蓋原有內容,而是在檔案內容後面接著寫;
false--寫入時會覆蓋原有內容,沒有第二個引數時預設是false
    FileOutputStream(File file, boolean append) 
    FileOutputStream(String name, boolean append) 
隨機讀寫流:
引數1:都是檔案路徑;引數2:是讀寫模式,只有兩個取值--r或rw
RandomAccessFile(File file, String mode) 

RandomAccessFile(String name, String mode) 

4.讀寫位置區別

普通檔案流:只能在指定位置【讀取】--skip()方法,不能指定位置寫入

隨機檔案流:可以在指定位置進行【讀寫】,使用seek()方法

5.應用區別

普通檔案流:使用普通檔案流不能進行多執行緒複製

隨機讀寫流:可以進行多執行緒複製

相關推薦

Java IO普通檔案隨機區別

普通檔案流和隨機讀寫流區別 FileInputStream和FileOutputStream FileReader和FileWriter RandomAccessFile 兩者區別:

Java 檔案隨機 RandomAccessFile

一.簡述 1、是JAVA I/O流體系中功能最豐富的檔案內容訪問類,它提供了眾多方法來訪問檔案內容。 2、由於可以自由訪問檔案的任意位置,所以如果需要訪問檔案的部分內容,RandomAccessFile將是更好的選擇。 3、可以用來訪問儲存資料記錄的檔案,檔案的記錄的大

[Linux操作]使用getsputs

linux流//使用fgets從標準輸入讀入一行數據 //然後使用fputs送標準輸出顯示 #include <stdio.h> #include <stdlib.h> #define MAXLINE 4096 //定義一行的最大字符長度 int main(int argc,

java面試題Thread的run()start()方法有什麼區別

run()方法:   是在主執行緒中執行方法,和呼叫普通方法一樣;(按順序執行,同步執行) start()方法:   是建立了新的執行緒,在新的執行緒中執行;(非同步執行)   public class App { public static void main( Stri

綜合應用題:多執行緒複製檔案(知識點:多執行緒、隨機

要求:使用多執行緒複製一個檔案(使用多執行緒複製一個檔案可以加快檔案的複製速度) 程式碼: package 多執行緒複製檔案; import java.io.File; import java.io.FileNotFoundException; impor

java RandomAccessFile隨機

Java的RandomAccessFile提供對檔案的讀寫功能,與普通的輸入輸出流不一樣的是RamdomAccessFile可以任意的訪問檔案的任何地方。這就是“Random”的意義所在。 RandomAccessFile的物件包含一個記錄指標,用於標識當前流的讀寫位置,

Java併發程式設計微服務註冊中心的鎖優化

一、讀寫鎖的介紹 這篇文章來聊一下讀寫鎖。所謂的讀寫鎖,就是將一個鎖拆分為讀鎖和寫鎖兩個鎖,然後你加鎖的時候,可以加寫鎖,也可以加讀鎖。如下面程式碼所示: 如果有一個執行緒加了寫鎖,那麼其他執行緒就不能加寫鎖了,同一時間只能允許一個執行緒加寫鎖。因為加了寫鎖就意味著有人要寫一個共享資料

20180803-Java (Stream)、檔案(File)IO

  Java 流(Stream)、檔案(File)和IO   下面的程式示範了用read()方法從控制檯不斷讀取字元直到使用者輸入"q"。 // 使用BufferedReader 在控制檯讀取字元 import java.io.* public class BRRead{pub

Java—— (Stream)、檔案(File)IO

參考於:https://blog.csdn.net/qq_22063697/article/details/52137369  版權宣告:本文為博主原創文章,轉載請附上博文連結! 一.  什麼是 IO Java中 I/O 操作主要是指使用 Java 進行輸入,輸出操作

Java基礎鞏固(四)-(Stream)、檔案(File)IO

Java流(Stream)、檔案(File)和IO Java.io 包幾乎包含了所有操作輸入、輸出需要的類。所有這些流類代表了輸入源和輸出目標。 Java.io 包中的流支援很多種格式,比如:基本型別、物件、本地化字符集等等。 一個流可以理解為一個數據的序列。輸入流表示從一個源讀取資

JAVA學習記錄(三)——Java (Stream)、檔案(File)IO

簡介 Java.io包幾乎包含了所有操作輸入、輸出需要的類。所有這些流類代表了輸入源和輸出目標。 Java.io包中的流支援很多種格式,比如:基本型別、物件、本地化字符集等等。 一個流可以理解為一個數據的序列。輸入流表示從一

Java燒腦驢遊(十四)--(Stream)、檔案(File)IO

Java.io包幾乎包含了所有操作輸入、輸出需要的類。所有這些流類代表了輸入源和輸出目標。 Java.io包中的流支援很多種格式,比如:基本型別、物件、本地化字符集等等。 一個流可以理解為一個數據的序列。輸入流表示從一個源讀取資料,輸出流表示向一個目標寫資料

Java 使用檔案來讀取檔案內容寫入內容到一個檔案

讀取檔案內容:FileInputStream、FileReader 寫入內容到檔案:FileOutputStream、FileWriter ex: /** * 使用檔案流來讀取檔案內容和寫入內

IO讀取檔案(輸入)

寫入檔案過程 1,建立聯絡 2,選擇流 3,操作 4,釋放資源 一起來看看程式碼吧! /** * 操作檔案過程 * 1,建立聯絡 * 2,選擇流 * 3,操作,讀寫 * 4,釋放資源 * @author snow * */ public class

從零開始學C++IO類庫(三):檔案、二進位制檔案檔案隨機

#include <cassert>#include <iostream>#include <fstream>#include <string>using namespace std;struct Test {     int a;     int b; };i

Python學習筆記文控制混合布爾比較操作符

-- 分別是 == inf 技術分享 mage bubuko 表達式 ima 隨筆記錄方便自己和同路人查閱。 #------------------------------------------------我是可恥的分割線-----------------------

javaFile類IO輸入輸出隨機類RandomAccessFile類的講解

今天來複習一下IO流的api, 在java中用io流來進行檔案的輸出和輸出操作,那麼首先類講解一下什麼是輸入和輸出: 所有往記憶體中送資料都是輸入 所有從記憶體出資料都是輸出 能用java.io包中的api操作的輸入輸出: 記憶體–>外存(硬碟,光碟,U盤) 本地流輸出

Vczh Library++3.0開發紀事式xmljson

    每次完成一個任務的時候,都要看看有沒有什麼潛在的可以把功能是現成庫的地方。這十分有利於提高自己的水平。但至於你寫出來的庫會不會有人用,那是另一回事情了。     這次為了完成一個多程式語言+多自然語言的文件編寫工具,不得不做一個可以一次生成一大批文字檔案的模板結構出來。有了模板必然有元資

java工具類Excel檔案匯入、讀取資料(支援xls、xlsx)

所需的jar包:poi的jar包儘量保持一致,不然會報版本不一致的錯誤下面是程式碼:package ReadExcel; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.

Java io學習java.nio.file的Path類Files類

1.Path 類 將一個路徑封裝成物件,該路徑可以是相對路徑也可以是絕對路徑。 //定義一個Path物件 Path path= Paths.get("E:\\ja