`

Java字节流

 
阅读更多

所谓流,指的同一台或者网络中不同计算机之间有序运动着的数据序列,这些不同来源和目标的数据都统一抽象为数据里。
1.FileInputStream提供以字节形式读取磁盘上文件等内容。

package com.test.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
/**
 * 文件输入流,从文件读取数据到程序中
 * @author 守望幸福
 *
 */
public class FileInputStreamTest {
	public static void main(String[] args) throws IOException {
		String path="d:\\fileTest\\";
		String fileName="file.txt";
		File f=new File(path);
		if(!f.exists()){//判断路径是否存在
			f.mkdir();
		}
		f=new File(path+fileName);
		if(!f.exists()){//判断文件是否存在
			f.createNewFile();
		}
		FileInputStream in=new FileInputStream(f);
		int n=512;
		byte buffer[]=new byte[n];
		System.out.println("文件长度:"+f.length());
		while(in.read(buffer,0,n)!=-1&& n>0){//一次读取512字节
			System.out.println("剩余字符长度:"+in.available());
			System.out.println(new String(buffer));
		}
		in.close();
	}
}




2. FileOutPutStream类提供以字节流形式输入的文件中。

package com.test.file;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 字节输出流
 * @author 守望幸福
 *
 */
public class FileOutPutStreamTest {
	public static void main(String[] args) throws IOException {
		FileOutputStream out=new FileOutputStream(new File("d:\\fileTest\\file.txt"));
		byte[] buff={1,2,3,4,5,6,'1','b','a','d','f','g','r','h','q','w'};
		out.write(buff);
		out.close();
	}
	
}




3.缓存输入流与输出流

   BufferedInputStream

构造方法摘要
BufferedInputStream (InputStream in)
创建一个 BufferedInputStream 并保存其参数,即输入流 in ,以便将来使用。
BufferedInputStream (InputStream in, int size)
创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in ,以便将来使用。

BufferedOutPutStream

构造方法摘要
BufferedOutputStream (OutputStream out)
创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
BufferedOutputStream (OutputStream out, int size)
创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。
package com.test.file;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * 缓存流必须配合InputStream对象和OutPutStream对象使用
 * 为上述两个对象添加缓存的功能
 * 
 * 从bin文件读取数据,保存到bout文件中
 * 
 * @author 守望幸福
 *
 */
public class BufferedStreamTest {
	public static void main(String[] args) throws IOException {
		FileInputStream in=new FileInputStream("d:\\fileTest\\bin.txt");
		FileOutputStream out=new FileOutputStream("d:\\fileTest\\bout.txt");
		BufferedInputStream bin=new BufferedInputStream(in);
		BufferedOutputStream bout=new BufferedOutputStream(out);
		byte[] buff=new byte[128];
		while(bin.read(buff)>0){
			bout.write(buff);
		}
		bout.flush();
		bout.close();
		bin.close();
	}
}




 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics