java corriente IO ------ notas de estudio búfer de la secuencia (3) y el byte buffer de caracteres corriente y conmutaciones flujo y

java corriente IO ------ notas de estudio búfer de la secuencia (3) y el byte buffer de caracteres corriente y conmutaciones flujo y

flujo de bytes búfer -BufferedInputStream y BufferedOutputStream

No se encontró nuevo método: archivo continuo read (), write () método

El flujo de tampón puede mejorar considerablemente el rendimiento de
la corriente de flujo de tampón debe ser el nodo más bajo
sólo se liberan cuando la capa más externa de la liberación (liberación puede ser completa, la regla: liberación de dentro a fuera)

Ejercicios archivos de flujo de bytes (byte stream buffer)

package Io; 

import java.io.BufferedInputStream; 
import java.io.BufferedOutputStream; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 

/** 
* @赌徒 
*/ 
public class copyT4 { 
public static void main(String[] args) throws IOException { 
     copy("data.txt", "copy1.txt"); 

} 

public static void copy(String srcFile,String srcFile1 ) throws IOException { 
     InputStream bis=new BufferedInputStream( new FileInputStream(srcFile)); 
     OutputStream bos=new BufferedOutputStream(new FileOutputStream(srcFile1)); 

     byte b[]=new byte[1024]; 
     int len=-1; 
     while((len=bis.read(b))!=-1) { 
     bos.write(b,0,len); 
} 
     bos.flush(); 
     bos.close(); 
     bis.close(); 
} 
} 

Carácter corriente de amortiguación -BufferedReader y BufferedWriter

La parte visible del método: el flujo de bytes del archivo read (), write () método para
el nuevo método:
el readline () para leer una línea de caracteres
de nueva línea () para escribir un delimitador de línea

Ejercicios archivo de flujo de caracteres (una corriente búfer de caracteres)

package Io; 

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.File;  
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 

/** 
* @author 赌徒
*/ 
public class copyT5 { 
public static void main(String[] args) throws IOException { 
     //源头
     File srcFile=new File("data.txt"); 
     File srcFile1=new File("copy2.txt"); 
     //选择流
     BufferedReader br= new BufferedReader(new FileReader(srcFile)); 
     BufferedWriter bw=new BufferedWriter(new FileWriter(srcFile1));
     String lineString=null; 
     //操作
     while((lineString=br.readLine())!=null) { 
         bw.write(lineString); 
         bw.newLine(); 
} 
     bw.flush(); 
     //释放
     bw.close(); 
     br.close(); 
} 

} 

Conmutaciones -InputStreamReader y OutputStreamWriter

 El InputStreamReader (decodificación) / OutputStreamWriter (Coding): el flujo de caracteres es una corriente de bytes
puente entre, puede transmitir en una corriente de carácter de bytes, y se puede especificar el conjunto de caracteres como un flujo de bytes, se puede procesar un carácter

Operación flujo de bytes (texto plano) en forma de un flujo de caracteres

package Io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
 *
 * 1.以字符流的形式操作字节流(纯文本)
 * 2.指定字符集
 * @author 赌徒
 *
 */
public class ConvertT6 {

	public static void main(String[] args) {
		try(BufferedReader isr=new BufferedReader( new InputStreamReader(System.in));
		BufferedWriter osw=new BufferedWriter(new OutputStreamWriter(System.out));) {
			//循环获取键盘的输入(exit退出),输出此内容
			String string="";
			while(!string.equals("exit")) {
				string=isr.readLine();//循环逐行读取
				osw.write(string);//循环写出
				osw.newLine();
				osw.flush();//强制刷新,否则内容会驻留在管道中
			}
			
		} catch (IOException e) {
			System.out.println("操作异常");
		}
	}

}
package Io;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

/**
 * 
 * 1.以字符流的形式操作字节流(纯文本)
 * 2.指定字符集
 * @author 赌徒
 *
 */
public class ConvertText2 {

	public static void main(String[] args) {
		try(BufferedReader isr=
				new BufferedReader(
						new InputStreamReader(
								new URL("http://www.baidu.com").openStream(),"UTF-8"));) {
			       String msg;
			                    
				while ((msg=isr.readLine())!=null) {
					System.out.println(msg);
		}
	}
		catch (IOException e) {
			System.out.println("操作异常");
		}

	}
}

-DataInputStream corriente y DataOutputStream

 Una corriente de entrada de datos para permitir que la corriente de manera independiente máquina de aplicación de leer los tipos de datos Java originales de la base de entrada (para facilitar el manejo de los tipos de datos básicos y los ocho cadenas, no sólo mantiene los datos conserva el tipo de datos). Las aplicaciones que los datos de uso escritos en el flujo de salida de datos se pueden leer los datos de flujo de entrada más tarde.

Estructura : tener un flujo interno básico
Nota : el orden de lectura y escritura para ser consistente

flujo de datos de ejercicio

package reIo;

import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

/**
 * 
 * 1.写出后读取
 * 2.读取顺序与写出保持一致
 * @author 赌徒
 *
 */
public class DataT7 {

	public static void main(String[] args) throws IOException {
 
		//写出
		ByteArrayOutputStream baos=new ByteArrayOutputStream();
		DataOutputStream dos=new  DataOutputStream(new BufferedOutputStream(baos));
		//操作数据类型+数据
		dos.writeUTF("你好");
		dos.writeInt(777);
		dos.writeBoolean(true);
		dos.writeChar('a');
		dos.flush();
		byte []bytes=baos.toByteArray();
		System.out.println(bytes.length);
		//读取
		DataInputStream dis=new DataInputStream(new BufferedInputStream(new ByteArrayInputStream(bytes)));
		//顺序与写出顺序一致
		String string=dis.readUTF();
		int num=dis.read();
		boolean b=dis.readBoolean();
		char c=dis.readChar();
		System.out.println(string);
	}

}
Publicado cuatro artículos originales · ganado elogios 12 · vistas 2370

Supongo que te gusta

Origin blog.csdn.net/qq_35577787/article/details/105123530
Recomendado
Clasificación