• Java日志第36天 2020.8.10


    IO

    java.io.outputStream:字节输出流

      此抽象类是表示输出字节流的所有类的超类

    定义了一些子类共性的成员方法:

    - public void close():关闭此输出流并释放与此流相关联的任何系统资源

    - public void flush():刷新此输出流并强制任何缓冲的输出字节被写出

    - public void write(byte[] b):将b.length字节从指定的字节数组写入此输出流

    - public void write(byte[] b, int off, int len):从指定的字节数组写入len字节,从偏移量off开始输出到此输出流

    - public abstract void write(int b):将指定的字节输出流

    java.io.FileOutputStream extends OutputStream

    FileOutputStream:文件字节输出流

    构造方法

    FileOutputStream(String name):创建一个向具有指定名称的文件中写入数据的输出文件流

    FileOutputStream(File file):创建一个向指定File对象表示的文件中写入数据的文件输出流

    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Arrays;
    
    public class Demo01OutputStream {
    
        public static void main(String[] args) throws IOException {
            FileOutputStream fos = new FileOutputStream("E:\Java\Practice\src\Practice\demo15\a.txt");
            fos.write(97);//a
            fos.close();
    
            /*
                public void write(byte[] b):将b.length字节从指定的字节数组写入此输出流
                如果第一个字节是正数(0-127),那么显示的时候会查询ASCII表
                如果第一个字节是负数,那第一个字节会和第二个字节组成一个中文显示,查询系统的默认码表(GBK)
             */
    
            FileOutputStream fos2 = new FileOutputStream("E:\Java\Practice\src\Practice\demo15\b.txt");
            byte[] b = {65, 66, 67, 68, 69};
            byte[] b2 = {-65, -66, -67, 68, 69};
            fos2.write(b);
            fos2.write(b2);
            fos2.close();
    
            /*
                public void write(byte[] b, int off, int len)
                从指定的字节数组写入len字节,从偏移量off开始输出到此输出流
             */
            FileOutputStream fos3 = new FileOutputStream("E:\Java\Practice\src\Practice\demo15\c.txt");
            fos3.write(b, 1, 2);
    
            /*
                写入字符的方法
                使用String类中的方法把字符串转换为字节数组
                byte[] geyBytes() 把字符串转换为字节数组
             */
            byte[] bytes = "你好".getBytes();
            System.out.println(Arrays.toString(bytes));
            fos3.write(bytes);
            fos3.close();
        }
    }

    *笔记本打开文件时,都会查询编码表,把字节转换为字符表示

    数据的追加续写与换行

    续写使用两个参数的构造方法:

    - FileOutputStream(String name, boolean append)创建一个向具有指定name的文件中写入数据的输出文件流

    - FileOutputStream(File file, boolean append)创建一个向指定File对象表示的文件中写入数据的文件输出流

    参数:

    boolean append:追加写开关

      如果是true:创建对象不会覆盖源文件,继续在文件的末尾追加写数据

      如果是false:创建一个新文件,覆盖源文件

    换行需要用换行符:

    Windows:

    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class Demo01OutputStream {
    
        public static void main(String[] args) throws IOException {
            FileOutputStream fos = new FileOutputStream("E:\Java\Practice\src\Practice\demo15\a.txt",true);
            for (int i = 0; i < 10; i++) {
                fos.write("你好".getBytes());
                fos.write("
    ".getBytes());
            }
            fos.close();
        }
    }

    明日任务:字节输入流的学习

  • 相关阅读:
    servlet乱码以及解决
    javascript正则简单入门
    javascript创建自定义对象和prototype
    java 对象初始化和代码块初始化顺序
    java final 和instanceof 关键字
    【记录】自学JavaScript第七周
    【记录】自学JavaScript第六周
    获取节点名称及节点值
    正则表达式中的替换字符串示例
    部分正则表达式基本函数用法示例
  • 原文地址:https://www.cnblogs.com/Gazikel/p/13468168.html
Copyright © 2020-2023  润新知