Java 二進位I/O處理

來源:互聯網
上載者:User

標籤:except   ext   temp   nbsp   int   磁碟讀寫   類型   實現   字元   

在Java中如何處理文本I/O

使用Scanner類讀取文本資料,使用PrintWriter類寫文本資料

例子:

public class IO {    public static void main(String [] args) throws FileNotFoundException {        //        PrintWriter printWriter = new PrintWriter("123.txt");  輸出文本資料//        printWriter.print("chenzquan");//        printWriter.close();        Scanner input = new Scanner(new File("123.txt"));  //輸入文本資料        System.out.print(input.nextLine());            }}

 

 

文本I/O需要編碼、解碼而二進位I/O不需要,所以二進位I/O比較快

 

 

二進位I/O類

 

InputStream類的方法

 

 

OutputStream類方法

 

 

FileInputStream和FileOutputStream

 FileInputStream類和FileOutputStream類用於從/向檔案讀取/寫入位元組

FileInputStream

 

FileOutputStream

 

 

 

 

 

public class TestFileStream {        public static void main(String [] args) throws FileNotFoundException, IOException {        try(FileOutputStream fileOutputStream = new FileOutputStream("temp.dat");                ){            for(int i=0;i<100; i++) {                fileOutputStream.write(i);            }        }                try(FileInputStream fileInputStream = new FileInputStream("temp.dat");){            int value;            while((value=fileInputStream.read()) != -1) {                System.out.print(value + " ");            }        }    }}

 

 

DataInputStream和DataOutputStresam

 

DataInputStream

實現DataInput介面

 

DataOutputStream

實現DataOutput介面

 

 

 

 

建立DataInputStream類和DataOutputStream類

 

 

例子:

 

 例子:

public class TestDataStream {    public static void main(String [] args) throws FileNotFoundException, IOException {        try(DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream("temp.dat"));){            dataOutputStream.writeUTF("John");            dataOutputStream.writeDouble(85.5);                        dataOutputStream.writeUTF("chenzquan");            dataOutputStream.writeDouble(100.0);                    }                try(DataInputStream dataInputStream = new DataInputStream(new FileInputStream("temp.dat"));){            System.out.println(dataInputStream.readUTF() + " " + dataInputStream.readDouble());            System.out.println(dataInputStream.readUTF() + " " + dataInputStream.readDouble());        }            }}

 

 

DataInputStream類和DataOutputStream類以同機器平台無關的方式讀寫Java基本類型值和字串,所以,一台機器寫好資料,可以在另一台讀取該檔案

 

 

 

BufferedInputStream類和BufferedOutputStream類

他們可以通過減少磁碟讀寫次數提高輸入和輸出的速度

使用BufferedInputStream時,磁碟上的整塊資料一次性地讀入到記憶體中的緩衝區中,然後從緩衝區將個別資料傳到程式中

使用BufferedOutputStream時,個別資料寫進緩衝區,當緩衝區滿了,緩衝區的資料一次性寫入到磁碟中

 

 

 

Java 二進位I/O處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.