读取文件内容并写入到指定文件

输入流InputStream的read()方法放回的值为int整型,即是源文件内容的二进制码,如果直接输出,需要进行强制类型转换,输入完毕后必须调用close()方法关闭事先申明的输入流

输出流OUtputStream的write()方法可以向指定的文件输出内容,若指定文件不存在,程序会自行创建,其参数为整型或者整型数组,但不需要对输入流的内容进行强制类型转换,输出完毕后也应该调用close()方法关闭输出流

 

import java.io.OutputStream;

import java.io.InputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

public class TestFileInputStream{
    public static void main(String[] args){
        InputStream in = null;                 //声明输入流
        OutputStream out = null;            //申明输出流
        try{
            in = new FileInputStream("d:\\lx\\ch11\\SystemInTest.java");   //设置读取的源文件
            out = new FileOutputStream("d:\\lx\\ch11\\1.txt");                  //只要路径正确,即使没有那个文件,运行时程序也会自行创建
        }catch(FileNotFoundException o){
            System.out.println("文件找不到,请重新确认");
            System.exit(0);
        }
        try{
            byte[] bs = new byte[512];           //设置读取字节流的单位
            long number = 0;
            int b = 0;                                    //用以存取单位输入流的内容
            while((b = in.read(bs)) != (-1)){          //此时read()的返回值为读进数组bs[]的字符数
                
                for(byte B : bs){
                    System.out.print((char)B);     //直接输出时必须强制转换,否则输出编码

                  // out.write(bs[i]);                 //写的时候不需要强制转换
                }

      out.write(bs);                      //直接将数组作为参数传给write()方法即可
                //out.write(b);                     
               // System.out.print((char)b);         //当b = in.read()时可以直接输出
                number++;
            }
            in.close();                               //关闭输入流
            out.close();
            System.out.println("共读取"+number+"个512字节");
           
        }
        catch(IOException e){
            System.out.println("not found!");
            System.exit(0);
        }
    }
}

转载于:https://www.cnblogs.com/dreeams/archive/2010/10/31/1865504.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值