Java讀取二進位文件,以位元組為單位進行讀取,還可讀取圖片、音樂檔案、影片檔案等。在Java中,提供了四種類來對檔案進行操作,分別是InputStream、OutputStream、Reader、Writer,前兩種是對位元組流的操作,後兩種則是對字元流的操作。
FileWriter只能接受字串形式的參數,也就是說只能把內容存到文字檔。相對於文字文件,採用二進位格式的文件儲存更省空間。
InputStream用於以位元組從輸入流讀取資料。其中的int read()方法讀取一個字節,這個位元組以整數形式傳回0到255之間的一個值。為什麼讀一個字節,而不直接回傳一個byte類型的值?
因為byte型別最高位是符號位,它所能表示的最大的正整數是127。
InputStream只是一個抽象類,不能實例化。 FilelnputStream是InputStream的子類,用於從檔案中以位元組讀取。
public static void main(String[] args) throws IOException { String filePath = "d:/test.txt"; File file = new File (filePath); //根据文件路径创建一个文件对象 //如果找不到文件,会抛出FileNotFoundException异常 FilelnputStream filelnput = new FilelnputStream(file); } filelnput.close (); //关闭文件输入流,如果无法正常关闭,会抛出IOException异常
OutputStream中的write(int b)方法用於按位元組寫出資料。 FileOutputStream用來以位元組把資料寫到檔案。例如,按位元組把內容從一個文件讀出來,並寫入另一個新文件,也就是文件複製功能。
File fileln = new File ("source. txt"); //打开源文件 File fileOut = new File ("target.txt”); //打开写入文件,也就是目标文件 FilelnputStream streamln = new FilelnputStream (fileln); //根据源文件构建输入流 FileOutputStream streamOut = new FileOutputStream (fileOut); //根据目标文件构建输出流 int c; //从源文件中按字节读入数据,如果内容还没读完,则继续 while ((c = streamln.read()) != -1) { streamOut .write (c); //写入目标文件 } streamln.close。; //关闭输入流 streamOut.close(); //关闭输出流
判斷檔案是否已經存在,如果不存在則產生這個檔案。
File dataFile = new File(dicDir + dataDic); if (!dataFile.exists()) { //如果文件不存在则写入文件 }
用File.mkdirs()方法可以建立多層目錄。例如,當一個目錄不存在時,就建立它。
File tempDir = new File(imgPath); if(!tempDir.exists()){ tempDir.mkdirs(); }
眾多java訓練影片,盡在PHP中文網,歡迎線上學習!
以上是java怎麼開啟二進位文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!