输入输出流的应用

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值