fluxo de bytes de gravação
OutputStream classe abstrata
- Esta classe abstrata é uma superclasse de todas as classes de fluxo de bytes de saída. Receber o fluxo de bytes de saída e emite os bytes transmitidos para um receptor.
- Os métodos mais comuns:
>void close()
> 关闭此输出流并释放与此流有关的所有系统资源。
>
>void flush()
> 刷新此输出流并强制写出所有缓冲的输出字节。
>
>void write(byte[] b)
> 将 b.length 个字节从指定的 byte 数组写入此输出流。
>
>void write(byte[] b, int off, int len)
> 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
>
> abstract void write(int b)
> 将指定的字节写入此输出流。
FileOutputStream 子 类
- Inserido diretamente no arquivo, gravar os dados de arquivos diretamente
Criar um objeto:
- FileOutputStream (String name)
Cria um dados de gravação para um arquivo com o nome especificado do fluxo de arquivo de saída.- FileOutputStream (arquivo de Arquivo)
para criar um arquivo para gravar o arquivo de dados representado pelo objeto File especificado no fluxo de saída.- FileOutputStream (arquivo de arquivo, boolean de acréscimo) - append
para criar um arquivo é gravado no arquivo de dados representado pelo objeto arquivo especificado no fluxo de saída.
BufferedOutputStream 子 类
- Essa classe implementa um fluxo de saída tamponada. Ao fornecer tais um fluxo de saída, o aplicativo pode escrever o respectivo fluxo de saída subjacente de bytes, os bytes são escritos em vez de para cada chamada para o sistema subjacente.
Criar objeto
- BufferedOutputStream (OutputStream fora)
- Criar um novo fluxo de saída em buffer para gravar dados para o fluxo de saída subjacente especificado.
fluxo de caracteres escritos
Escritor classes abstratas: Classe abstrata para fluxos de escrita de caracteres.
Os métodos mais comuns:
- vazio write (char [] cbuf)
escreve o array de caracteres.- Sumário void write (char [] cbuf
, int fora, int len) Adicione uma porção de um conjunto de caracteres.- write void (int c)
Escrever um único personagem.- void write (String str)
escrever a string.- void write (String str, int off
, int len) Escrever uma parte de uma string.- abstrato vazio close ()
fechar o fluxo, rubor-lo primeiro.
OutputStreamWriter 子 类
OutputStreamWriter, a ponte é um carácter fluxos para fluxos de bytes: usando um conjunto de caracteres de caracteres especificado escrito para o fluxo em código de bites. Ele usa o conjunto de caracteres pode ser especificado pelo nome ou explicitamente dado, caso contrário ele irá aceitar conjunto de caracteres padrão da plataforma.
Criar um objeto:
- OutputStreamWriter (OutputStream fora, String charsetName)
criada usando o OutputStreamWriter conjunto de caracteres especificado.- OutputStreamWriter (OutputStream out)
Cria uma codificação OutputStreamWriter caracteres padrão.
public class rr {
public static void main(String[] args) throws Exception {
// method1();//字节写出
method2();//字符写出
}
private static void method2() throws Exception {
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("D:\\\\teach\\\\a.txt")) , "utf-8"));
long s = System.currentTimeMillis();
for(int i = 48 ; i < 1000000; i++) {
out.write(i);
}
s = System.currentTimeMillis() - s;
System.out.println(s + "--");//266
out.close();
}
private static void method1() throws Exception {
long s = System.currentTimeMillis();
OutputStream out = new FileOutputStream(new File("D:\\teach\\a.txt"));
for(int i = 48 ; i < 1000000; i++) {
out.write(i);
}
s = System.currentTimeMillis() - s;
System.out.println(s + "--");//3484
long ss = System.currentTimeMillis();
OutputStream out2 = new BufferedOutputStream(new FileOutputStream(new File("D:\\teach\\a2.txt")));
for(int i = 48 ; i < 1000000; i++) {
out2.write(i);
}
ss = System.currentTimeMillis() - ss;
System.out.println(ss + "==");//54
out.close();
out2.close();
}
}