字节输出流写多个字节的方法与字节输出流的续写和换行

字节输出流写多个字节的方法

1. 写出字节: write(int b) 方法,每次可以写出一个字节数据,代码使用演示:

   //创建FileOutpuStream对象,构造方法中绑定要写入数据的目的地
            FileOutputStream flie = new FileOutputStream(new File("G:\\XQ1.01\\网站原型\\WPS Office\\11.1.0.11365\\office6\\addons\\cef\\locales\\c.txt"));
            //调用FileOutStream对象中的方法write,把数据写入到文件中
            //在文件中显示100个字节
            flie.write(49);
            flie.write(48);
            flie.write(48);

2. 写出字节数组: write(byte[] b) ,每次可以写出数组中的数据,代码使用演示:

  /*
            public void write(byte[] b):将b.length字节从指定的字节数组写入此输出流。一次写多个字节:
                如果写的第一个字节是正数(0-127),那么显示的时候会查询ASCII表
                如果写的第一个字节是负数,那第一个字节会和第二个字节,两个字节组成一个中文显示,查询系统默认码表(GBK)
             */
            byte[] bytes ={-65,-66,-67,68,69};
            flie.write(bytes);

3. 写出指定长度字节数组: write(byte[] b, int off, int len) ,每次写出从off索引开始,len个字节,代码
使用演示:

 /*
            public void write(byte[] b, int off , int len):把字节数组的一部分写入到文件中
            从指定的字节数组写入len字节,从偏移量off开始输出到此输出流。
                        int off:数组的开始索引
                         int len:写几个字节
             */
            flie.write(bytes,1,2);

整体代码:

package DemoOutputStream;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;

/*
     一次写多个字节的方法:
        public void write(byte[] b):将b.length字节从指定的字节数组写入此输出流
        public void write(byte[] b,int off,int len) : 从指定的字节数组写入len字节,从偏移量off开始输出到此输出流
     */
public class Demo01OutputStream {
        public static void main(String[] args) throws IOException {
            //创建FileOutpuStream对象,构造方法中绑定要写入数据的目的地
            FileOutputStream flie = new FileOutputStream(new File("G:\\XQ1.01\\网站原型\\WPS Office\\11.1.0.11365\\office6\\addons\\cef\\locales\\c.txt"));
            //调用FileOutStream对象中的方法write,把数据写入到文件中
            //在文件中显示100个字节
            flie.write(49);
            flie.write(48);
            flie.write(48);
            /*
            public void write(byte[] b):将b.length字节从指定的字节数组写入此输出流。一次写多个字节:
                如果写的第一个字节是正数(0-127),那么显示的时候会查询ASCII表
                如果写的第一个字节是负数,那第一个字节会和第二个字节,两个字节组成一个中文显示,查询系统默认码表(GBK)
             */
            byte[] bytes ={-65,-66,-67,68,69};
            flie.write(bytes);

            /*
            public void write(byte[] b, int off , int len):把字节数组的一部分写入到文件中
            从指定的字节数组写入len字节,从偏移量off开始输出到此输出流。
                        int off:数组的开始索引
                         int len:写几个字节
             */
            flie.write(bytes,1,2);
            byte[] bytes1 = "你好".getBytes();
            System.out.println(Arrays.toString(bytes1));

            flie.write(bytes1);

            flie.close();
        }
}

 

数据追加续写


经过以上的演示,每次程序运行,创建输出流对象,都会清空目标文件中的数据。如何保留目标文件中数据,还能继续添加新数据呢?
    public FileOutputStream(File file, boolean append):创建文件输出流以写入由指定的 File对象表示的文件。
    public FileoutputStream(String name,boolean append):创建文件输出流以指定的名称写入文件。这两个构造方法,参数中都需要传入一个boolean类型的值,true]表示追加数据,false]表示清空原有数据。这样创建的输出流对象,就可以指定是否追加续写了,代码使用演示∶

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

    FileOutputStream(String name,boolean append)创建一个向具有指定name 的文件中写入数据的输出文件流
    FileOutputStream(File file,boolean append)创建一个向指定File对象表示的文件中写入数据的文件输出流
    参数:
        String name,File file:写入数据的目的地
        boolean append:追加写开关
            true:创建对象不会覆盖源文件,继续在文件的末尾追加写数据
            false:创建一个新文件,覆盖源文件

写换行:写换行符号

        windows:\r\n
        linux:/n
        mac:/r

代码:

package DemoOutputStream;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/*
    追加写/续写:使用两个参数的构造方法
        FiLeOutputStream(String name,boolean append)创建一个向具有指定name的文件中写入数据的输出文件流。
        FiLeOutputStreom(File file, booLean append)创建一个向指定FiLe对象表示的文件中写入数据的文件输出流。
       参数:
           string name , File file:写入数据的目的地
           boolean append :追加写开关
           true:创建对象不会覆盖源文件,继续在文件的末尾追加写数据
           false:创建一个新文件,覆盖源文件
 */
public class Demo02OutputStream {
    public static void main(String[] args) throws IOException {
        FileOutputStream flie = new FileOutputStream("c.txt",true);
        for (int i = 0; i < 10; i++) {
            flie.write("你好".getBytes());
            flie.write("\r\n".getBytes());
        }
        flie.close();

    }
}

 

 

 

 

posted @ 2022-07-09 08:59  zj勇敢飞,xx永相随  阅读(147)  评论(0编辑  收藏  举报