针对不同的源或目的地,Java.io包为程序提供了相应的输入流或输出流这些输入、输出流大部分都是InputStream、OutputStream、Reader或Writer的子类
InputStream抽象类的子类创建的流对象称为字节输入流
OutputStream抽象类的子类创建的流对象称为字节输出流
Reader抽象类的子类创建的流对象称为字符输入流
Writer抽象类的子类创建的流对象称为字符输出流
InputStream 调用read方法就顺序的读取源中的其余内容
常用方法:
int read()
int read(byte b[])
int read(byte b[],int off,int len)
void close()
long skip(long numBytes)
OutputStream 调用write方法就顺序的向目的地写入内容
常用方法:
void write(int n)
void write(byte b[])
void write(byte b[],int off,int len)
void close()
Reader 提供read方法以字符为单位顺序读取源中数据
int read():
int read(char b[],int off,int len):
void close():
long skip(long numBytes):
Writer 调用write方法就顺序的向目的地写入内容
void write(int n):向输出流写入一个字符
void write(char b[]):向输出流写入一个字符数组
void write(char b[],int off,int len):
void close():
使用close()方法保证操作系统把缓冲区的内容写到目的地,即关闭输出流可以把该留所用的缓冲区的内容冲洗掉
文件字节输入、输出流构造方法:
FileInputStream(String name);
FileInputStream(File file);
FileOutputStream(String name)
FileOutputStream(File file)
字节输出输入
import java.io.*;
public class OutputStreamDemo {
public static void main(String args[]) throws IOException
{
//写入数据
File file=new File("d:"+File.separator+"demo.txt");
OutputStream out=new FileOutputStream(file,true);//在文件后追加
String str="hello world";
byte b[]=str.getBytes();
out.write(b);
out.close();
//读取数据
File file1=new File("d:"+File.separator+"demo.txt");
InputStream in=new FileInputStream(file1);
byte[] by=new byte[(int)file.length()];//根据文件大小开辟字节空间
in.read(by);
System.out.println(by.toString());
}
}
字符输入、输出流构造方法:
FileReader(String filename);
FileReader(File filename);
FileWriter(String filename);
FileWriter(File filename);
字符输出输入
import java.io.*;
public class WriterDemo {
public static void main(String args[]) throws IOException
{
//字符写入
File file=new File(“d:”+File.separator+“demo.txt”);
Writer writer=new FileWriter(file);
String str=“hello world!”;
writer.write(str);
writer.close();
//字符读取
File file1=new File(“d:”+File.separator+“demo.txt”);
Reader read=new FileReader(file1);
char[] ch=new char[(int)file1.length()];
read.read(ch, 0, (int) file1.length());
System.out.println(ch.toString());
read.close();
}
}