import java.io.*;
public class xx{
 public static void main(String args []) throws Exception{
  FileInputStream f = new FileInputStream("F:\\rublish\\c.txt");  BufferedReader dr=new BufferedReader(new InputStreamReader(f));《《《《《------ 
*************************************************************
 这个读取文件怎么用两个对象 多了一步字节流到字符型的转换??
 我看了一句话还可以理解 { 所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列.}  **********************************************  如果这样那么下面的程序怎么直接用字符读取文件
  import java.io.*;
public class FileCopy {
  public static void main(String[] args) {
   int b = 0;
   FileReader in = null;
   FileWriter out = null;
   
   
   try {
     in = new FileReader("c:\\HelloWorld.txt");《《《-----
     out = new FileWriter("c:\\HW.txt");《《《《《《---
 
  访问文件必须用InputStream类吗???

解决方案 »

  1.   

    无法理解LZ到底想说什么
    in = new FileReader("c:\\HelloWorld.txt");不就是不用InputStream访问文件么 ?怎么还会有最后一个问题呢
      

  2.   

    不是的  FileReader是Reader的子类 不是InputStream子类
      

  3.   

    你问“访问文件必须用InputStream类吗???”
    又给出了不是“不是InputStream子类”的FileReader访问文件的代码
    那答案不是很明显么 访问文件不是必须用InputStream类
      

  4.   

    使用Reader读取文件比较快速,因为它按字符来读取。
    API中有句话,“FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader”
      

  5.   

    java读取文件的方式分为两种:一种是Reader《字符流》,一种是InputStream《字节流》,他们两个是平级的,没有继承关系。但是可以通过InputStreamReader进行转换,将InputStream《字节流》转换为Reader《字符流》,提高读取效率。
      

  6.   

    能帮我看个拷贝文件的程序吗??实现A中的文本到B  接着B的最后一个字符而
    import java.io.*;
    public class FileCopy {
      public static void main(String[] args) {
       int b = 0,c=0;
       FileReader in = null;
       FileWriter out = null;
       FileReader in1=null;
       
       try {
         in = new FileReader("c:\\HelloWorld.txt");
         out = new FileWriter("c:\\HW.txt");
         in1=new FileReader("c:\\HW.txt");
         while((c=in1.read())==-1){?????????//}《《----------------
         
         while((b=in.read())!=-1){
         
          out.write(b);
           System.out.write(b);
         }
         
         out.close();
         in.close(); 
         
       } catch (FileNotFoundException e2) {
         System.out.println("找不到指定文件"); System.exit(-1);
       } catch (IOException e1) {
         System.out.println("文件复制错误"); System.exit(-1);
       }
       System.out.println("文件已复制");
      }
      

  7.   

    Reader和InputStream的使用是看读取文件的格式;一般记事本之类的文件都是用Reader,图像数据之类的原始字节用InputStream,具体适用范围还请查看API
      

  8.   


    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.OutputStreamWriter;public class FileCopy {
    public static void main(String[] args) {
    BufferedReader reader = null;
    BufferedWriter writer =null;
    String line = "";
    try {
    writer = new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream("H:\\zyus2.txt", true)));
    reader = new BufferedReader(new FileReader("H:\\zyus1.txt"));
    while((line = reader.readLine()) != null){
    writer.write(line);
    }
    reader.close();
    writer.close(); } catch (FileNotFoundException e2) {
    System.out.println("找不到指定文件");
    } catch (IOException e1) {
    System.out.println("文件复制错误");
    }
    System.out.println("文件已复制");
    }}
      

  9.   

      public static void main( String[] args )
        {
            int b = 0;
            FileReader in = null;
            FileWriter out = null;
            try
            {
                in = new FileReader( "c:\\HelloWorld.txt" );
                out = new FileWriter( "c:\\HW.txt", true );
                while( ( b = in.read() ) != -1 )
                {
                    
                    out.write( b );
                    System.out.write( b );
                }
                
                out.close();
                in.close();
                
            }
            catch( FileNotFoundException e2 )
            {
                System.out.println( "aaa" );
            }
            catch( IOException e1 )
            {
                System.out.println( "bbb" );
            }
            System.out.println( "ccc" );
        }
      

  10.   

    现在一般读写文件都会用BufferedReader和BufferedWriter包装一下,BufferedReader的readLine()方法很不错的。有点不明白为什么 11楼 既然用了FileReader类,为什么不用FileWriter类