字节流

作者: 只取一瓢爱了解 | 来源:发表于2020-07-01 20:48 被阅读0次

    字节输出流【OutputStream】

    FileOutputStream类

    写入数据到文件
    /**
     * 字节输出流写入数据到文件
     */
    public class Demo1 {
        public static void main(String[] args) throws IOException {
            //1.创建一个FileOutputStream对象,构造方法中传递写入数据的目的地
            FileOutputStream fos = new FileOutputStream("/Users/wym/a.txt");
            //2.调用write方法,把数据写入到文件中
            fos.write(98);
            //3.释放资源
            fos.close();
        }
    }
    
    写多个字节到文件
    public class Demo2 {
        public static void main(String[] args) throws IOException {
            FileOutputStream fos = new FileOutputStream(new File("/Users/wym/b.txt"));
            /*
                一次写多个字节:
                    如果写得第一个字节是正数(0-127),那么显示的时候会查询ASCII表
                    如果写得第一个字节是负数,那第一个字节会和第二个字节组成一个中文显示
             */
            //byte[] bytes = {65,66,67,68,69};
            byte[] bytes = "你好".getBytes();
            fos.write(bytes);
            fos.close();
        }
    }
    
    续写和换行
    public class Demo3 {
        public static void main(String[] args) throws IOException {
            //追加写
            FileOutputStream fos = new FileOutputStream("/Users/wym/b.txt",true);
            //换行写  windows:\r\n  Linux:\n  Mac:\r
            for(int i = 0;i < 10;i++){
                fos.write("你好".getBytes());
                fos.write("\r".getBytes());
            }
    
            fos.close();
        }
    }
    

    字节输入流【InputStream】

    FileInputStream类

    读取字节数据
    public class Demo1 {
        public static void main(String[] args) throws IOException {
            FileInputStream fis = new FileInputStream("/Users/wym/b.txt");
            int len;
            while((len = fis.read()) != -1){
                System.out.println(len);
            }
            fis.close();
        }
    }
    
    读取多个字节
    public class Demo2 {
        public static void main(String[] args) throws IOException {
            FileInputStream fis = new FileInputStream("/Users/wym/b.txt");
            //用数组作为缓冲
            byte[] bytes = new byte[1024];
            int len;
            while((len = fis.read(bytes)) != -1){
                System.out.println(new String(bytes,0,len));
            }
            fis.close();
        }
    }
    

    文件复制练习

    public class Copy {
        public static void main(String[] args) throws IOException {
            //创建字节输入流,绑定要读取的数据源
            FileInputStream fis = new FileInputStream("/Users/wym/Downloads/默认头像.png");
            //创建字节输出流,绑定要写入的目的地
            FileOutputStream fos = new FileOutputStream("/Users/wym/默认头像.png");
            //使用数组缓冲读取多个字节,提高效率
            byte[] bytes = new byte[1024];
            int len;
            while((len = fis.read(bytes)) != -1){
                fos.write(bytes,0,len);
            }
            //释放资源(后使用的先关闭)
            fos.close();
            fis.close();
        }
    }
    

    相关文章

      网友评论

          本文标题:字节流

          本文链接:https://www.haomeiwen.com/subject/asscqktx.html