码迷,mamicode.com
首页 > 编程语言 > 详细

Java 二进制I/O处理

时间:2018-07-21 22:38:34      阅读:244      评论:0      收藏:0      [点我收藏+]

标签: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处理

标签:except   ext   temp   nbsp   int   磁盘读写   类型   实现   字符   

原文地址:https://www.cnblogs.com/zquan/p/9348124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!