Java字节流--输出流OutputStream和输入流InputStream

OutputStream和InputStream都是抽象类

OutputStream定义和InputStream定义

OutputStream InputStream
public abstract class OutputStream
extends
Object
implements
Closeable, Flushable
public abstract class InputStream
extends
Object
implements
Closeable

常用的两个实现子类

FileOutputStream

package demo;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
/**
 * 输入输出是相对内存而言。
 * 输出:从内存往硬盘写东西。对内存来说是输出,对硬盘来说是写入(write)
 *  输入:从硬盘往内存写东西。对内存来说是输入,对硬盘来说是写入(read)
 * @author Administrator
 *
 */
public class TestDemo
{
	public static void main(String[] args) throws Exception
	{
		//1、定义要输出文件的路径
		File file = new File("g:"+File.separator+"demo"+File.separator+"test.txt");
		if(!file.getParentFile().exists())//判断父路径是否存在
		{
			file.getParentFile().mkdirs();//不存在就创建
		}
		//2、应该使用OutputStream和其子类进行对象的实例化,此时目录存在,文件还不存在
		//文件不存在会自动创建
		OutputStream output = new FileOutputStream(file);//覆盖原来内容
//		OutputStream output = new FileOutputStream(file,true);//对原来内容追加

		//3、要进行文件内容的输出
		String str = "好好学习天天向上!";
		byte[] data = str.getBytes();
		output.write(data);//全部字节输出
//		output.write(data,0,3);//部分输出
		
		//4、资源使用完要关闭
		output.close();
	}
}




FileInputStream

package demo;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class TestDemo2
{
	public static void main(String[] args) throws Exception
	{
		//1、定义要输入文件的路径
		File file = new File("g:"+File.separator+"demo"+File.separator+"test.txt");
		if (!file.exists())//文件不存在就不操作了
		{
			System.out.println("文件不存在");
		}
		else {
			//2、找一根传输的管子
			InputStream is = new FileInputStream(file);
			//3、存放传输的数据
			byte[] data = new byte[1024];
			int temp = 0 ;
			int foot = 0 ;
			while((temp=is.read())!=-1)
			{
				data[foot++] = (byte) temp ;
			}
			System.out.println("【"+new String(data,0,foot)+"】");
			//4、关闭
			is.close();
			
		}
	}
}
结果:
【好好学习天天向上!】


FileOutputStreamFileInputStream

 

FileOutputStream

FileInputStream

定义

public class FileInputStream

extends InputStream

public class FileInputStream

extends InputStream

构造方法

Java字节流--输出流OutputStream和输入流InputStream_第1张图片


常用方法

void close() 

void write(byte[] b) 

void write(byte[] b, int off, int len) 

void write(int b) 

void close()

int read() 

int read(byte[] b) 

int read(byte[] b, int off, int len) 

你可能感兴趣的:(Java)