博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaI/O(输入/输出)
阅读量:4551 次
发布时间:2019-06-08

本文共 1849 字,大约阅读时间需要 6 分钟。

File类

通过File类可以在程序中操作文件和目录,File能新建、删除、重命名文件和目录,但是不能访问文件内容本身。

理解I/O流

  1. 流(stream)是从起源(source)到接收(sink)的有序数据。
  2. Java的I/O流使用了装饰器模式,将I/O流分成底层节点流和上层处理流。
  3. Java的I/O提供四个抽象基类不能创建实例
    • 八位字节流以InputStream和OutputStream为基类
    • 十六位的字符流以Reader和Writer为基类
  4. 方法
    • 输入流
      • int read()
      • int read(byte[] b)
    • 输出流
      • void write(int c)
      • void write(String s)
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class FiieTest {    public void readFile()throws IOException {        //创建字节输入流        FileInputStream fis = new FileInputStream("FileTest.java");        //创建取文件的容器        byte[] bbuf = new byte[1024];        //保存实际读取的字节数        int hasRead = 0;        //在容器中循环取字节        while ((hasRead = fis.read(bbuf)) > 0) {            //将字节数组转换成字符串            System.out.println(new String(bbuf, 0, hasRead));        }        //关闭文件流,放在finally块里更安全        fis.close();    }        public void writeFile()throws IOException {        //java7使用try语句保证输入流自动关闭        try (            FileInputStream fis = new FileInputStream("FileTest.java");            FileOutputStream fos = new FileOutputStream("FileTest.txt"))        {            byte[] bbuf = new byte[32];            int hasRead = 0;            while ((hasRead = fis.read(bbuf)) > 0) {                fos.write(bbuf, 0, hasRead);                            }        }catch (IOException e) {            e.printStackTrace();        }            }}

处理流

使用处理流操作更简单,执行效率更高

//使用PrintStream处理流包装OutputStream    public void printTest() throws IOException{        try (            FileOutputStream fos = new FileOutputStream("test.txt");            PrintStream ps = new PrintStream(fos)){                        ps.println("p普通字符串");            ps.println(new FileTest());                    } catch (IOException e) {            e.printStackTrace();        }    }

转载于:https://www.cnblogs.com/pycrab/p/8877182.html

你可能感兴趣的文章
文件解析漏洞
查看>>
弹性成像的一些术语
查看>>
ListBox 消息 (zz)
查看>>
计算机网络之万维网WWW
查看>>
作业2
查看>>
vim 笔记
查看>>
MySQL的基本使用命令
查看>>
第三次作业
查看>>
蓝桥杯-猜算式
查看>>
PHP定界符<<<EOF
查看>>
05_模板方法模式
查看>>
linux下搭建DHCP服务
查看>>
双曲函数与反双曲函数
查看>>
EF中的Select * From T Where id In(xxx,xxx)子查询
查看>>
自己写的一个校验IP、IP掩码、IP段的方法
查看>>
Node.js:模块系统
查看>>
jQuery.Data源码
查看>>
将博客搬至CSDN
查看>>
layui问题之模拟select点击事件
查看>>
ckplayer-超酷网页视频播放器的使用
查看>>