10.2.2 输入输出流的应用
FileInputStream和FileOutputStream
注意:FileNotFoundException异常.以及IOException异常.
eg:在程序中常见一个文件,写入从键盘输入的一串字符,然后再读该文件并将文件内容显示在屏幕上.
package lilx.unit8;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileIO {
public static void main(String [] args){
FileInputStream fin;//声明文件输入流对象fin
FileOutputStream fout;//声明文件输出流对象fout
char ch;
int data;
try{
fin = new FileInputStream(FileDescriptor.in);//创建文件输入流对象fin
fout = new FileOutputStream("d:\\cgj\\myfile.txt");//创建文件输出流对象fout
System.out.println("请输入一串字符,并以#结束:");
while((ch = (char)fin.read())!='#')
fout.write(ch);
fin.close();
fout.close();
System.out.println();
fin = new FileInputStream("d:\\cgj\\myfile.txt");
fout = new FileOutputStream(FileDescriptor.out);
while(fin.available()>0){
data = fin.read();
fout.write(data);
}
fin.close();
fout.close();
}catch(FileNotFoundException e){
System.out.println("文件没有找到!");
}catch(IOException e){
}
}
}
eg2:用FileInputStream和FileOutputStream来实现对二进制图形文件.gif的备份.
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class StoreGIF {
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
FileInputStream fi = new FileInputStream("d:\\cgj\\gificon.gif");
FileOutputStream fo=new FileOutputStream("d:\\cgj\\my_icon.gif");
System.out.println("文件的大小="+fi.available());
byte b[] = new byte[fi.available()];
fi.read(b);
fo.write(b);
System.out.println("文件已被复制并被保存");
fi.close();
fo.close();
}catch(Exception e){
e.printStackTrace();
System.out.println("exception");
}
}
}
2顺序输入流SequenceInputStream
构造方法:
public SequenceInputStream(Enumeration e) //创建一个串行输入流,裂解枚举对象e中的所有输入流
public SequenceInputStream(InputStream s1,InputStream s2) //创建一个串行输入流,连接输入流s1和s1
常用方法:
public int available() //返回流中的可读取的字符数
public void close()
public int read() //从输入流中读取字符,遇到EOF就转向下一输入流
public int read(byte b[],int off,int len) //将len个数据读到一个字节数组从off开始的位置
3.管道输入输出流
PipedInputStream
PipedOutputStream
4.过滤输入输出流
FilterInputStream
FilterOutputStream
5.标准输入输出
System.in.read();
System.out