• 技术文章 >Java >java教程

    Java文件读写操作的示例分析

    WBOYWBOY2023-04-24 14:43:07转载27

    java的IO

    Java程序允许通过流的方式与输入输出设备进行数据传输。Java中的流都在java.io包中,称为IO(输入输出)流。IO流按照操作数据的不同,可以分为字节流和字符流,按照数据传输方向的不同,又可以分为输入流和输出流,程序从输入流中读取数据,向输出流中写入数据,在IO包中,字节流的输入输出分别用java.InputStream和java.io.OutputStream表示,字符流的输入输出分别用java.io.Reader和java.io.Writer表示。

    字节流

    在计算机中,无论是文本,图片,音频还是视频,所有的文件都是以二进制的方式存在的,字节流是程序中最常用的流,根据数据的传输方向分为字节输入流和字节输出流,在JDK中,提供了两个抽象类InputStream和OutputStream,他们是字节流的顶级父类,所有的字节输入流都继承OutputStream.

    InputStream的常用方法

    int read()//从输入流中读取一个八位的字节,并把它转换为0~255之间的整数,并返回这一整数
    int read(byte[]b)//从输入流读取若干个字节,把它们保存到参数b指定的字节数组中,返回的整数表四读取字节的数目
    int read(byte[]b,int off,int len)//从输入流读取若干字节,把它们保存到参数b指定的字节数组中,off指定字节数组开始保存数据的起始下标,len表示读取的字节数目
    void close()//关闭此输入流并释放与该流关联的所有系统资源

    OutputStream的常用方法

    void write(int b)//向输出流写入一个字节
    void write(byte[]b)//把参数b指定的字节数组的所有字节写到输出流
    void write(byte[]b,int off,int len)//将指定的byte数组中从偏移量off开始的len个字节写入输出流
    void flush()//刷新此输出流并强制手写所有的缓冲的输出字节
    void close()//关闭此输出流并释放与此流相关的所有系统资源

    flush()方法用来将当前输出流缓冲区(通常是字节数组中)的数据强制写入目标设备,此过程称为刷新。InputStream和OutputStream这两个类虽然提供了一些读写数据有关的方法,但是这两个类都是抽象类,不能被实例化。

    字节流读写文件

    由于计算机中的数据基本都保存在硬盘的文件中,在操作文件时,从文件中读取数据并将数据写入文件,FileInputStream和File Output Stream是进行读写操作的两个类。由于从文件中读取数据是重复的操作,因此需要通过循环语句来实现数据的持续读取。

     package IO;
     import java.io.FileInputStream;
     public class Li01 {
         public static void main(String[] args) throws Exception{
             FileInputStream in=new FileInputStream("test.txt");
             int b=0;
             while(true){
                 b=in.read();
                 if(b==-1){
                     break;
                 }
                 System.out.print(b+" ");
             }
             in.close();
         }
     }

    演示结果

    Java文件的读写操作方法实例分析

    之所以输出数字是因为硬盘上面的文件都是以字节的形式存在的,在进行读取文件数据时,必须保证文件在相应目录存在并且是可读的。

    如何将数据写入到文件中

     package IO;
     import java.io.FileOutputStream;
     import java.io.OutputStream;
     import java.nio.charset.StandardCharsets;
     public class Li02 {
         public static void main(String[] args) throws Exception{
             OutputStream out=new FileOutputStream("example1.txt");
             String str="好好学习,天天向上!";
             byte[]b=str.getBytes(StandardCharsets.UTF_8);
             for(int i=0;i<b.length;i++){
                 out.write(b[i]);
             }
             out.close();
         }
     }

    Java文件的读写操作方法实例分析

    通过FileOutputStream写数据时,自动创建了文件example1.txt,并将数据写入文件,如果向已存在文件中写入内容,首先该文件的内容会被清空,然后再写入新的数据,如果想要在已存在的文件后追加内容,可以在文件名后面加个boolean值并设置为true。

    package IO;
     import java.io.FileOutputStream;
     import java.io.OutputStream;
     import java.nio.charset.StandardCharsets;
     public class Li02 {
         public static void main(String[] args) throws Exception{
             OutputStream out=new FileOutputStream("example1.txt",true);
             String str="好好学习,天天向上!";
             byte[]b=str.getBytes(StandardCharsets.UTF_8);
             for(int i=0;i<b.length;i++){
                 out.write(b[i]);
             }
             out.close();
         }
     }

    Java文件的读写操作方法实例分析

    以上就是Java文件读写操作的示例分析的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:亿速云,如有侵犯,请联系admin@php.cn删除
    专题推荐:Java
    上一篇:java接口中的静态方法如何继承 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 如何避免JAVA中简单的for循环出现异常?• java怎么随机打乱数组顺序• Java如何使用Freemarker实现页面静态化?• Java中如何使用数组?• 如何在Java中将二维数组转换为一维数组
    1/1

    PHP中文网