JavaのIOストリーム------研究ノート(3)バイトストリームバッファ&文字バッファ流れ&転流&

JavaのIOストリーム------研究ノート(3)バイトストリームバッファ&文字バッファ流れ&転流&

-BufferedInputStream&なBufferedOutputStreamバッファバイトストリーム

新たな方法が見つかりませんでした:ファイルバイトストリームの読み込み()、書き込み()メソッドを

バッファフローは大幅に性能向上させることができ
、バッファ流れが最小のノードでなければならない
放出の最外層場合にのみ放出さ(:内側から外側に放出放出がいっぱいである可能性があり、ルール)

ストリームファイル(ストリームバッファバイト)バイトの演習

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(); 
} 
} 

-BufferedReader&BufferedWriterのを文字バッファ流れ

方法の可視部分:ファイルのバイトストリームリード()、ライト()のメソッド
新しい方法
のreadline()文字の行読み取るため
改行()行区切り文字を書き込みます

演習の文字ストリームファイル(文字バッファストリーム)

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(); 
} 

} 

転流-InputStreamReader&のOutputStreamWriter

 InputStreamReaderの(デコード)/のOutputStreamWriter(コーディング):文字ストリームはバイトストリームである
ブリッジ間は、バイトの文字ストリームにストリーミングすることができ、バイトストリームとして文字セットを指定することができ、一つの文字を処理することができ

文字ストリームの形で運用バイトストリーム(プレーンテキスト)

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&DataOutputStreamを

 アプリケーション・マシンに依存しない方法の流れを可能にするデータ入力ストリームは、(基本データ型と8つの文字列を取り扱いを容易にするだけでなく、データがデータ・タイプを保持する保持)入力ベースから元のJavaデータ型を読み取ります。出力ストリームデータに書き込まれた使用データは、後にデータ入力ストリームを読み取ることができるアプリケーション。

構造:基本的な内部流持つ
:読み書きの順序が一致するように

運動データストリーム

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);
	}

}
リリース元の4件の記事 ウォン称賛12 ビュー2370

おすすめ

転載: blog.csdn.net/qq_35577787/article/details/105123530