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();
}
}
}
结果: 【好好学习天天向上!】
FileOutputStream和FileInputStream
|
FileOutputStream |
FileInputStream |
定义 |
public class FileOutputStream extends OutputStream |
public class FileInputStream extends InputStream |
构造方法 |
|
|
常用方法 |
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) |
---------------
我每一次回头,都感觉自己不够努力,所以我不再回头。
---------------