public static void main(String[] args) throws IOException {
        // 字节流的写操作
        FileOutputStream f = null;
        try {
            f = new FileOutputStream("a.txt");
            // 注意:1、如果文件不存在,会创建文件在写,前提是路径名必须正确,否则会报FileNotFoundException(系统找不到指定路径的错)
            // 2、写之前会清空文件原来的内容,如果不想清空原内容,而是在原内容后追加写入,
            // 需要FileOutputStream f = new FileOutputStream("a.txt",true),第二个参数就是追加续写的开关,如果不写默认清空
            // 如果为true,那么创建对象的这行代码就不会清空文件

            // 方法1:一次写一个字节,参数是int类型,对应码表
            f.write(97);
            byte[] arr = {97, 98, 99, 100, 101, 102, 103, 104, 105};
            // 方法2:一次写一个字节数组
            f.write(arr);
            // 方法3:一次写一个字节数组的一部分,2表示从数组的第2个元素开始写,5表示写5个元素
            f.write(arr, 2, 4);

            // 换行 windows是\r\n ,linux是\n ,mac是\r
            f.write(97);
            f.write("\r\n".getBytes());
            f.write(98);
            f.write("\r\n".getBytes());
            f.write(99);

            // 写完数据后要释放资源
            f.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            // finally里的代码一定会被执行,除非JVM停止
            if (f != null) {
                try {
                    f.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }

    }