從Java中的FileInputStream讀取字節

2020-12-13 Java從零開始

以下示例顯示了如何從Java中的FileInputStream讀取字節。

importjava.io.File;import java.io.FileInputStream;publicclass fileInputStream {

publicstaticvoidmain(String[] args) {

byte[] data = newbyte[1024]; //allocates memory for 1024 bytes

//be careful about how to declare an array in Java

intreadBytes;

try{

File file = new File("testfile");

file.createNewFile();

FileInputStream in = new FileInputStream(file);

while((readBytes = in.read(data)) != -1) {

//read(byte[] b)

//Reads some number of bytes from the input stream and stores them into the buffer array b.

System.out.println("read " + readBytes + " bytes, and placed them into temp array named data");

System.out.println("data :" + data[123]);

}

in.close();

} catch (Exception e) {

e.printStackTrace();

}

}}

如果放置一些數據,它將給出以下輸出:

run:

read 1024 bytes, and placed them into temp array named data

read 952 bytes, and placed them into temp array named data

BUILD SUCCESSFUL (total time: 2 seconds)

最後,開發這麼多年我也總結了一套學習Java的資料與面試題,如果你在技術上面想提升自己的話,可以關注我,私信發送領取資料或者在評論區留下自己的聯繫方式,有時間記得幫我點下轉發讓跟多的人看到哦。

相關焦點

  • Java之字節輸入流InputStream的簡單介紹
    java.io.InputStream:字節輸入流,此抽象類是表示字節輸入流的所有類的超類。定義了所有子類共性的方法:1.int read()從輸入流中讀取數據的下一個字節。2.int read(byte[] b)從輸入流中讀取一定數量的字節,並將其存儲到緩衝數組b中3.void close()關閉此輸出流並釋放與該流關聯的所有系統資源。抽象方法無法直接創建父類,我們需要用到抽象方法的子類如FileInputStream。
  • 這一次,徹底弄懂 Java 字節碼文件!
    這些方法也是以信息的形式存儲在編譯之後的字節碼class文件當中,接下來,JVM去執行字節碼文件時,當你調用某個特定方法時,JVM才能根據你所編寫的原始碼的意圖去執行字節碼裡的指令。對於這個方法來說,在JVM中最終是形成一條條指令的去執行的,也就是說在字節碼裡形成的每一條指令對應源碼文件中的每一行原始碼。
  • 跟我學java編程—Java的標準輸入
    中文註解:從輸入流中讀取下一個字節的數據,返回整型類型的數據,其接受的數值範圍為0-255。如果讀取失敗,返回-1。示例1:用read方法讀取單個英文字符數據在D盤Java目錄下,新建「ReadSample.java」文件。
  • JAVA IO Stream流總結
    Java中I/O操作主要是指使用 java.io 包下的內容,進行輸入、輸出操作。輸入也叫做讀取數據,輸出也叫做作寫 出數據。一.java.io.File 類1.4.4 字節輸入流【InputStream】java.io.InputStream 抽象類是表示字節輸入流的所有類的超類,可以讀取字節信息到內存中。它定義了字節輸入流的基本共性功能方法。
  • java.io.IOException: mark/reset not supported 異常
    在 Azure 上傳文件的時候遇到了一個下面的異常:java.io.IOException: mark/reset not supportedat java.base/java.io.InputStream.reset
  • 「JAVA」字節流、字符流、緩衝流、轉換流、內存流、字符編碼
    文件流、字節流、字符流、緩衝流、轉換文件流: 在Java 中,文件流負責操作文件,包括讀取和寫入;在讀取數據時,字節流的數據存儲單位是字節,在接收字節流數據時,會新建一個字節類型的數組(byte[])來接收讀取的數據;字符流的數據存儲單位是字符,在接收字符流數據時,會新建一個字符類組(char[])的數據來接收讀取的數據。
  • Java熱加載?操作class字節碼理論知識
    「方法區中的數據從哪來?」「方法區中的數據是類加載時從class文件中提取出來的。」「class文件從哪來?」「從Java或者其他符合JVM規範的原始碼中編譯而來。」「原始碼從哪來?」如果有的話,我們就能修改字節碼中目標方法所在的區域,然後重新加載這個類,這樣方法區中的對象行為(方法)就被改變了,而且不改變對象的屬性,也不影響已經存在對象的狀態,那麼就可以搞定這個問題了。可是,這豈不是違背了JVM的類加載原理?畢竟我們不想改變ClassLoader。」
  • 簡單分析方法在字節碼文件中的表述
    上一篇文章我們分析了構造函數在字節碼文件中的表示,普通的方法與構造函數基本一致,這裡也簡單分析一下。00 01「只有一行,所以接下來4個字節」00 00 00 0C「表示Code第0個字節碼指令對應源文件中第12(」00 0C「)行.
  • java——Scnner()類下面有幾種方法呢?
    一、Scnner類 Scnner類在java.util包中一個可以使用正則表達式來解析基本類型和字符串的簡單文本掃描器 例如,以下代碼使用戶能夠從 System.in 中讀取一個數: 再看一個例子,以下代碼使 long 類型可以通過 myNumbers 文件中的項分配: 掃描器還可以使用不同於空白的分隔符。
  • Java基礎學習:一篇文章讓你搞懂Java字符串的前世今生
    } 就可以是從網絡(例如一個瀏覽器的 http 請求)傳遞過來的字節數據也可以是從 I/O(例如從一個文本文件)讀取到的數據它的內部結構其實也是這時 byte[] 會在構造時被轉換為 char中的 char 字符都是以 unicode 編碼的,從外界不同的編碼(如 gbk,utf-8)傳過來的 byte[] 最終到 java 中的 char 都統一了1.4 int[] 數組創建有時候我們還需要用兩個 char 表示一個字符,比如 這個笑哭的字符,它用 unicode 編碼表示為 0x1F602,存儲範圍已經超過了
  • Java常見問題集錦(來自sun官方) 第二部分
    問: 若通過ObjectOutputStream向一個文件中多次以追加方式寫入object,為什麼用ObjectInputStream讀取這些object時會產生StreamCorruptedException?
  • Java咖啡館(2)——第一杯咖啡
    (2)把源程序編譯成Java字節碼(bytecode)文件  Java編譯器,「javac」,讀取你的Java源程序並翻譯成Java虛擬機能夠明白的指令集合,且以字節碼的形式保存在文件中。通常,字節碼文件以CLASS作為擴展名。  (3)運行字節碼文件  Java解釋器將充當Java虛擬機的角色。
  • Java動態字節技術之Javassist
    概述Javassist是一個開源的分析、編輯和創建Java字節碼的類庫,可以直接編輯和生成Java生成的字節碼。相對於bcel, asm等這些工具,開發者不需要了解虛擬機指令,就能動態改變類的結構,或者動態生成類。javassist簡單易用, 快速。
  • 以愉快的心情聊聊java中的進位問題
    java中的進位也算是面試中經常會遇到的一個知識點,不管是計算問題,還是涉及到的基礎知識。因此這篇文章對其進行一個整理。主要參考了慕課網上的視頻,特在此說明。不管是你初學者還是工作中,又或者是找工作中。本文都能對你有所幫助。
  • ClassLoader——JAVA成長之路
    一般來說,Java 虛擬機使用 Java 類的方式如下:Java 源程序(.java 文件)在經過 Java 編譯器編譯之後就被轉換成 Java 字節代碼(.class 文件)。類加載器負責讀取 Java 字節代碼,並轉換成 java.lang.Class類的一個實例。每個這樣的實例用來表示一個 Java 類。
  • Java 添加、讀取、刪除Excel文檔屬性
    在文檔屬性中,可以設置諸多關於文檔的信息,如創建時間、作者、單位、類別、關鍵詞、備註等摘要信息以及一些自定義的文檔屬性。下面將通過Java程序來演示如何設置,同時對文檔內的已有信息,也可以實現讀取和刪除等操作。示例大綱:1.
  • 90後程式設計師職場報告:Java類求職難度最低,字節跳動接收簡歷最多
    報告顯示,對比目前企業的崗位需求量來說,java類語言崗位求職難度最低,平均每個崗位只有4人競爭;Javascript類求職難度較高,平均每個崗位有28.8人爭搶。報告還公布了「技術崗位語言佔比」。其中,java、javascript分別以33%和27%的佔比脫穎而出,成為大熱門語言。
  • Java面試題分享4
    對於我們java開發者而言,你只需要在不同的系統上安裝對應的不同java虛擬機、這時你的java程序只要遵循java規範,就可以在所有的作業系統上面運行java程序了。Java通過不同的系統、不同版本、不同位數的java虛擬機(jvm),來屏蔽不同的系統指令集差異而對外體統統一的接口(java API),對於我們普通的java開發者而言,只需要按照接口開發即可。如果我系統需要部署到不同的環境時,只需在系統上面按照對應版本的虛擬機即可。2.講一下java中int數據佔幾個字節?
  • Java程式設計師必備基礎:Java代碼是怎麼運行的?
    因此,在運行Java程序之前,需要編譯器把代碼編譯成java虛擬機所能識別的指令程序,這就是Java字節碼,即class文件。 所以,Java代碼運行的第一步是:把Java原始碼編譯成.class 字節碼文件。
  • Java IO流詳解(面試不要再問我IO流)
    字節輸入流 InputStreamjava.io 包下所有的字節輸入流都繼承自 InputStream,並且實現了其中的方法。InputStream 中提供的主要數據操作方法如下:int read():從輸入流中讀取一個字節的二進位數據。