java1234开源博客系统
博客信息

Java IO流-InputStream和OutputStream

发布时间:『 2017-01-07 10:48』  博客类别:Java核心基础  阅读(7091) 评论(0)

Java IO流-InputStream和OutputStream


InputStream是输入流  OutputStream是输出流;

InputStream输入流可以把文件从硬盘读取到内存;

OutputStream输出流可以把文件从内存写入到硬盘;


我们实际使用的都是InputStream和OutputStream的子类;

比如文件操作方面用的是FileInputStream和FileOutputStream;

我们给下实例,视频教程里会详细讲解:

准备工作,我们在C盘建一个txt文件 测试文件.txt

随便加点内容:

QQ鎴浘20170107104246.jpg

package com.java1234.chap10.sec03;

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

public class Demo1 {

	public static void main(String[] args) throws Exception {
		File file=new File("C://测试文件.txt");
		InputStream inputStream=new FileInputStream(file);  // 实例化FileInputStream
		byte b[]=new byte[1024];
		int len=inputStream.read(b);
		inputStream.close(); // 关闭输入流
		System.out.println("读取的内容是:"+new String(b,0,len));
	}
}

把文件从硬盘读取到内存,并且输出:

运行结果:

读取的内容是:我是人 www.java1234.com


上面那个是定义了固定字节数组 一批读取的,我们现在改进下,获取文件长度,然后定义指定字节数组的长度;

package com.java1234.chap10.sec03;

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

public class Demo2 {

	public static void main(String[] args) throws Exception {
		File file=new File("C://测试文件.txt");
		InputStream inputStream=new FileInputStream(file);  // 实例化FileInputStream
		int fileLength=(int)file.length();
		byte b[]=new byte[fileLength];
		inputStream.read(b);
		inputStream.close(); // 关闭输入流
		System.out.println("读取的内容是:"+new String(b));
	}
}

运行结果也一样;


我们再来一种方式 一个字节一个字节读取;

package com.java1234.chap10.sec03;

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

public class Demo3 {

	public static void main(String[] args) throws Exception {
		File file=new File("C://测试文件.txt");
		InputStream inputStream=new FileInputStream(file);  // 实例化FileInputStream
		int fileLength=(int)file.length();
		byte b[]=new byte[fileLength];
		int temp=0;
		int len=0;
		while((temp=inputStream.read())!=-1){
			// 一个字节一个字节读取,放到b字节数组里
			b[len++]=(byte)temp;
		}
		inputStream.close(); // 关闭输入流
		System.out.println("读取的内容是:"+new String(b));
	}
}

运行结果还是一样的;



下面是讲下输出流;

package com.java1234.chap10.sec03;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class Demo4 {

	public static void main(String[] args) throws Exception {
		File file=new File("C://测试文件.txt");
		OutputStream out=new FileOutputStream(file);
		String str="你好,我好,大家好,Java好";
		byte b[]=str.getBytes();
		out.write(b); //  将b字节数组写入到输出流
		out.close();  // 关闭输出流
	}
}

我们把指定文件写入到文件;


上面那种是直接覆盖的,我们再来一个追加的;

package com.java1234.chap10.sec03;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class Demo5 {

	public static void main(String[] args) throws Exception {
		File file=new File("C://测试文件.txt");
		OutputStream out=new FileOutputStream(file,true);
		String str="你好,我好,大家好,Java好";
		byte b[]=str.getBytes();
		out.write(b); //  将b字节数组写入到输出流
		out.close();  // 关闭输出流
	}
}



关键字:   InputStream     OutputStream  
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有