Java IO详解

这里举了几个IO例子

  1. 使用FileReader的read(char[] cbuf)读取字符

    private static final int MAX_LEN = 1024;  //每次读取的最大字节数
    FileInputStream in = new FileInputStream("File Path");
    int len;
    byte[] buf = new byte[MAX_LEN];
    while( (len = in.read(buf)) != -1) {    //每次读取MAX_LEN个字节,len为读取到的字节数
        System.out.println(buf);
        //System.out.println(new String(buf, 0, len));
    }
    fileReader.close();
    

    这个代码中的(len = in.read(buf)) != -1 解释:

    我们就以内容是abcde为例:你设置的buf长度是1024,因此每次从文件中读取1024个字符。
    第一次读取,fr.read(buf),因为文件中就5个字符,全被读到了buf中,此时len=5,执行循环体中的语句,输出abcde;然后程序继续执行;
    第二次读取,fr.read(buf),由于文件中的数据第一次已经读完,因此此时返回值为-1,跳出循环。
    所以最后输出abcde.

  2. 使用FileReader.read()来读取

    int i;
    while((i = fileReader.read()) != -1){
        System.out.println(char(i));
    }
    fileReader.close();
    

    这个代码 (i = fileReader.read()) != -1

    fileReader.read() 是一个字符一个字符的读,当不是文件末尾的时候,返回字符本身,当读到文件末尾的时候,返回-1

  1. Buffered Reader 读取文件 常用

    BufferedReader in = new BufferedReader(new FileReader("Path"));
    String line = in.readLine(); 
    
  2. Scanner 来读取

    //Scanner in = new Scanner(System.in);  键盘输入
    Scanner in = new Sacnner(new FileReader("Path"));
    String line = in.nextLine();
    
  3. 这里我们可以看到 基本上我们使用的 类 BufferedReader等等他们都是以FileReader建立的,他们都体现了 装饰类 的思想,它与其他类配合使用。 过滤流
    而我们 经常使用的方法 : readLine()nextInt() 就在 这些装饰类中实现了

  4. Java IO package 相关类的关系
    注意查看 我们经常使用的 过滤类


    image.png

    image.png
  5. File对象的使用
    这里举的例子是File 对象是一个目录。

    File direct=new File(".");//创建代表当前目录的文件对象
    
    String fileList[]=direct.list();//返回目录下的所有文件名和目录名
    
    for(String name:fileList)
       System.out.println("name:"+name);
    
    //列出目录中的文件名和尺寸
    for(int i=0;i<fileList.length;i++)
    {
       File currentFile=new File(fileList[i]);
       System.out.println(currentFile.getAbsolutePath()+"  "+currentFile.length()+"字节");
    }
    
  6. 这里另提一下,当我们要访问的文件用绝对路径的时候,直接写就行,“D:\...”,如果是本工程中的文件,“ . ”表示本工程所在的 位置,如下图,要访问package chapter9内的图片


    image.png
in = new FileInputStream(".\\src\\chapter9\\lotus.jpg");
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 Java IO流的概念,分类 1.1 Java IO流的概念 java的IO是实现输入和输出的基础,可以方便的...
    _fatef阅读 1,818评论 2 4
  • 这是java io 比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于io的处理类,比如console类...
    国祥同学阅读 971评论 0 2
  • 1 IONo18 1.1IO框架 【 IO:Input Output 在程序运行的过程中,可能需要对一些设备进...
    征程_Journey阅读 1,028评论 0 1
  • 1. Java中字节流和字符流 字节(Byte)和字符(Character)的大小: 1 byte = 8bit[...
    thorhill阅读 671评论 0 2
  • 梦醒枝头花落尽,孤城一片自难平。 诗家有幸埋风骨,又待何年复我兴? 翻译: 在诗人的世界里,人生如梦,倘若有不得不...
    雅俗共赏Y阅读 385评论 11 15

友情链接更多精彩内容