java输出流与输入流

1.字节输入流

字节输入流
1.Output 输出 写文件 写出去(程序->文件 往外输出)
2.Intput 输入读文件 读进来(文件->程序 输入)

1.OutPutStream 是抽象 是所有输出流的父类
2.一次写入一个字节 一个字节8个二位进制

1.读取文件的布骤
1.绑定数据源文件(要读哪个文件)
2.使用read方法
3.关闭资源
注意:字节流写入的是一个字节一个字节的的写入
    读取也是一个字节一个字节的读取.
2.字节流读取内容为hello的long.txt文件
public class text {
    public static void main(String[] args) throws IOException {
        File file  = new File("/Users/lanou/Desktop/test/long.txt");
        FileInputStream iStream = new  FileInputStream(file);
        //读取
        int i1 = iStream.read();//读取一个字节内容
        System.out.println(i1);//输出该内容对于的ASCII码对应的数字

        i1 =iStream.read();
        System.out.println(i1);

        i1 =iStream.read();
        System.out.println((char)i1);//将给对应内容转回原字符

        i1 =iStream.read();
        System.out.println((char)i1);

        i1 =iStream.read();
        System.out.println((char)i1);
        iStream.close();

    }
}

运行结果:
104
101
l
l
o
-1
结论:结果为-1说名读取到空读取结束
3.构造方法
参数有
1.文件(被写入的文件)
2.文件路径(被写入的路径)
写入文件的路径
1.绑定要写入的文件 或者 文件的路径
2.使用write 方法写入
3.关闭资源
    绑定数据的目的地(绑定要写入的文件)
    该路径下没有该文件会帮你创建出来
    如果已经有了会覆盖掉
public class text {
    public static void main(String[] args) throws IOException {
        File file  = new File("/Users/lanou/Desktop/test/ong.txt");
        FileOutputStream oStream = new FileOutputStream(file);
//      写入数据100
        oStream.write(49);//输入按ASCII表的值输入
        oStream.write(48);
        oStream.write(48);
         //用字节数组写入ABCD
         byte[] bs ={65,66,67,68};
         oStream.write(bs);

         //按字节数组的索引和长度写入
         oStream.write(bs,1,2);//从角标1开始读取一次读2个单位字节


         //简单写法
         oStream.write("www".getBytes());
         oStream.write("www".getBytes());

         oStream.close();//关闭资源

}
}
运行结果:创建了一个在test文件夹中的ong.txt文件,
并且写入数据内容 100ABCDBCwwwwww
4.文件续写与换行
public class text {
    public static void main(String[] args) throws IOException {
        File file  = new File("/Users/lanou/Desktop/test/ong.txt");
        FileOutputStream oStream = new FileOutputStream(file,true);

         oStream.write("www\n".getBytes());

         oStream.close();//关闭资源

}
}
5.异常处理
public class text {
    public static void main(String[] args) throws IOException {
        File file = new File("/Users/lanou/Desktop/test/ong.txt");
        // 增加作用域
        FileOutputStream oStream = null;
        try {
            // 创建了一个流
            // 只要是你手动创建了流 你就需要手动关闭它
            oStream = new FileOutputStream(file);
            //  写入
            oStream.write("hel".getBytes());
        } catch (FileNotFoundException e) {
            // 抛出运行时异常(直接停止掉程序)
            throw new RuntimeException("文件找不到");
        } catch (IOException e) {
            // 文件编写失败 直接停掉程序
            throw new RuntimeException("文件编写失败");       
        }finally {
            // 关闭资源
            try {
                // 非空判断 
                // 如果是空的 说明流创建失败了 失败了就不用关了
                if(oStream != null) {
                    oStream.close();
                }
            } catch (IOException e) {
                // 关闭资源失败 停止程序
                throw new RuntimeException("关闭失败");
            }
        }

}}
## 
1.使用数组读取文件
public class text {
    public static void main(String[] args) throws IOException {
        File file  = new File("/Users/lanou/Desktop/test/ong.txt");
        // 使用字节数组 读取文件
        FileInputStream iStream = new FileInputStream(file);
        // 声明了一个长度为2的 空的 字节数组
        // 读取时 会把读出来的字节放进字节数组存储
        byte[] b = new byte[2];
        int i1 = iStream.read(b);
        System.out.println(i1);
        // 利用字符串的构造方法 直接打印字符串
        System.out.println(new String(b));

         i1 = iStream.read(b);
        System.out.println(i1); // 2
        // 利用字符串的构造方法 直接打印字符串
        System.out.println(new String(b)); //cd

         i1 = iStream.read(b);
            System.out.println(i1);
            // 利用字符串的构造方法 直接打印字符串
            System.out.println(new String(b));

            i1 = iStream.read(b);
            System.out.println(i1);
            // 利用字符串的构造方法 直接打印字符串
            System.out.println(new String(b));
            iStream.close();
}}
运行结果:
2
he
2
ll
1
ol
-1
ol
2.循环读取
        // read方法 每调用一次 就读取一个字节
        // 循环的时候 read方法只能出现一次
        // 声明一个变量 保存读出来的结果
        File file = new File("/Users/lanou/Desktop/test/ong.txt");
        FileInputStream iStream = new FileInputStream(file);
        int i = 0;
        while((i = iStream.read())!= -1) {
            System.out.print((char)i);
        }
运行结果:
hello
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值