请问如何将文件读入流中,再从流中读取文件的内容?

解决方案 »

  1.   

    方式多了,如果你要读字符可以:BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("文件名")));用
    br.readln()可以从文件中读出一行字符。
    br.read()可以读出一个字符。详细的情况,请自己查API吧。
      

  2.   

       // 一下两组类都是基于字节流的,例如一些图形数据文件的处理 
      FileOutputStream
     BufferedOutputStream FileInputStream
     BufferedInputStream // 而以下两组是基于字符流的处理效率会更高一些 
      FileReader
     BufferedReader
     InputStreamReader
     
     FileWriter
     BufferedWriter
     OutputStreamWriter
     
     1      下面这个例子是拷贝一个文件到另外一个文件,文件的形式有两种一种是基于字符型的如:txt文档,或java文档。
     2     而另一种是基于非字符的,而是用字节处理起来更方便。
     3  
     4  /* 
     5 *以下这段代码是拷贝一个txt文档到另一个位置
     6  */ 
     7  
     8    boolean  eof  =   false ;
     9    int  intChar  =   0 ;
    10  
    11    // 获得对源文件到的连接 
    12    File source  =   new  FileSource(String sourceName);
    13  
    14    // 让输入流与文件关联起来,同时使用缓冲提高效率 
    15    FileReader fr  =   new  FileReader(source);
    16   BufferedReader br  =   new  BufferedReader(fr);
    17  
    18   File destination  =   new  File(String destinationName);
    19   FileWriter fw  =   new  FileWriter(destination);
    20   BufferedWriter bw  =   new  BufferedWriter(fw);
    21  
    22     while ( ! eof) {
    23      intChar  =  br.read();
    24        if (intChar  !=   - 1 ) {
    25         bw.writer(( char )intChar);
    26       } else {
    27         eof  =   true ;
    28      } 
    29   } 
    30  
    31   bw.flush();
    32   br.close();
    33   bw.close();
    34  
    35  // 以上的方式指示对基于字符的文件有作用,如果换成DOC文件拷贝以后就全是乱码
    36  // 所以下面会介绍如何通过给予字节流的方法完整的复制源文件
    37   /* 
    *以下是基于字节流的文件拷贝,可以兼容字符文件的拷贝,例如拷贝
     */ 
     
         boolean  eof  =   false ;   // 文件是否读取完毕 
           int  intChar  =   0 ;     // 文件是否已经读到尾     // 文件输入流         
          File source  =   new  File(String sourceName);
        FileInputStream fis  =   new  FileInputStream(source);
        BufferedInputStream bis =   new  BufferedInputStream(fis);     // 文件输出流 
         File destination  =   new  File(String destinationName);
        FileOutputStream fos  =   new  FileOutputStream(destination);
        BufferedOutputStream bos  =   new  BufferedOutputStream(fos);     do {
            intChar  =  bis.read();
             if (intChar  !=   - 1 ) {
                bos.writer(intChar);
            } else {
              eof  =   true ;
            } 
        } while ( ! eof);
             
            bis.flush();
            bos.close();
            bis.close();
      

  3.   

    说一点自己的看法,如果你能java得io这些基本的常识都需要去问别人,你最好还是别选择编程这个行业,有些东西别人可以告诉你,但如果连一些最基本最底层的东西自己都不好好搞明白,你以后也不可能有太大的发展!