[英]FileInputStream, FileOutputStream - check file for specific value/line/string
[英]FileInputStream and FileOutputStream line by line
FileInputStream讀取文件的所有字節,FileOutputStream將allbytes寫入文件
如果我想讀取文件的所有字節但逐行讀取,我會使用哪個類
以便
如果fileA包含兩行
line1 line2
然后單獨讀取line1和line2的字節
FileOutputStream也是如此
弗雷德里克是正確的約BufferedReader
,但我不同意PrintWriter
-我有問題PrintWriter
是,它燕子例外。
值得理解的是,為什么FileInputStream
和FileOutputStream
沒有任何與行相關的方法: *Stream
類是關於二進制數據流的。 就二進制數據而言,沒有“線”這樣的東西。 *Reader
和*Writer
類是關於文本的 ,其中一行的概念更有意義......雖然一般Reader
沒有足夠的智能來讀取一行(只是一個字符塊)所以這就是BufferedReader
進來。
InputStreamReader
和OutputStreamWriter
是適配器類,將字符編碼應用於字節流以將其轉換為字符,或將字符流轉換為字節。
因此,您可能希望BufferedReader
包裝一個包含FileInputStream
的InputStreamReader
以進行讀取 - 然后調用readLine()
。 對於寫作,使用BufferedWriter
包裝的OutputStreamWriter
包裝一個FileOutputStream
-然后調用write(String)
和newLine()
(這將為您提供平台默認行分隔符 - 如果您需要特定的分隔符,只需將其寫為字符串。)
還有FileReader
類,它結合了FileInputStream
和InputStreamReader
(和FileWriter
相同),但它們總是使用平台默認編碼,這幾乎不是你想要的。 這使得他們幾乎無用的IMO。
我認為你要找的是BufferedReader和PrintWriter。
看看這個是第一個樣本: http : //www.java2s.com/Tutorial/Java/0180__File/CreateBufferedReaderfromInputStreamReader.htm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.