zoukankan      html  css  js  c++  java
  • IO流中的字节流和字符流

    IO流分类

                    输入          输出

    字节       inputStream()抽象类 outputStream()

    字符       reader()         writer()

    常用方法read()如果不带参数的话就是返回字母的ASCLL表值

    如果带参数返回的是一个int()值如果没有后面的数据则返回一个byte的数据长度把取出来的数据放入byte中,两个方法都是当没有数据的时候返回值为-1,这样可以作为循环退出的条件

    Write方法把数据写入磁盘中不能写入文件夹,自能写入文件

    会出现这样的错误解决办法为 

    编码异常

    因为中文占2个字节所以出现了读取的中文缺失或者多取的情况,造成了乱码

    乱码还包括使用的编码的方式和取码的方式不同造成的情况

    转换流

    因为在前后端的交互中我们使用的是TCP协议,这样会造成文件通过字节流传输所以当我们编辑文本文件的时候却需要字符流来操作,就需要字节流转字符流,传输的时候为字符流转为字节流

    JDK1.7中的流异常处理

    Try{}catch(){}

    Try(自动关闭的流){}catch(){}

    package cn.jiedada.jdk7trycatch;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    
    public class Test {
        /*
         * 正常的try{}catch{}fillnaly
         * 文件操作的
         * 1.7过后为try(想要关闭的流){}catch
         * */
        public static void main(String[] args) {
            try(FileInputStream fis=new FileInputStream("D:\JAVA上课学习内容\2019-07-31-IO-DAY19\video\01-课程介绍.avi");
                FileOutputStream fos=new FileOutputStream("F:\新建文件夹\a.doc");){
                byte[] b=new byte[1024];
                int n;
                while ((n=fis.read(b))!=-1) {
                    fos.write(b,0,n);
                }
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    常见的写入和存入

    package cn.jiedada.ioopration;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class Test {
        /*
         * 把文件取出来并且存放在一个新的文件中
         * */
        public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
            //先在内存中取出磁盘的文件
            FileInputStream fis = new FileInputStream("D:\JAVA上课学习内容\2019-07-31-IO-DAY19\video\01-课程介绍.avi");
            FileOutputStream fileOutputStream = new FileOutputStream("F:\新建文件夹\a.txt");
            byte[] b=new byte[1024];
            int n;
            while ((n=fis.read(b))!=-1) {
                fileOutputStream.write(b,0,n);
            }
            fis.close();
        }
        
    
    }
    View Code
  • 相关阅读:
    Symbol
    对象的附加属性
    怪异盒模型
    javascript的三大组成部分
    让目标对象滚动到视口位置
    隐藏单个盒子的滚动条
    uni-app判断有没有安装这个app,如果有的话直接打开,没有的话跳转到下载页面
    js 读取json文件
    openlays 使用 svg标注,动态修改svg颜色
    iview table组件内容过多用“...”代替,鼠标悬停显示全部内容
  • 原文地址:https://www.cnblogs.com/xiaoruirui/p/11285498.html
Copyright © 2011-2022 走看看