//FilterInputStream类是一个protected类型,求一个能顺利运行的代码!import java.io.*;
public class File2
{
public static void main(String[] args)
{
File f=new File("d:\\filetest\\1.txt");
FileInputStream fis=new FileInputStream(f);
FilterInputStream filter=new FilterInputStream(fis);
for(int i=0;i<f.length(); i++)
{
System.out.print(filter.read(i));
}
fis.close();
}
}
=============================================================================
D:\JAVAgo>javac File2.java
File2.java:9: FilterInputStream(java.io.InputStream) 可以在 java.io.FilterInputstream 中访问 protected
                FilterInputStream filter=new FilterInputStream(fis);
                                         ^
File2.java:12: 找不到符号
符号: 方法 read(int)
位置: 类 java.io.FilterInputStream
                        System.out.print(filter.read(i));
                                               ^

解决方案 »

  1.   

    可以把FileInputStream用它的一个子类代替使用BufferedInputStream
    然后再把字节流写入到一个字节数组里read(byte[])
    然后就可以进行转换输出了
      

  2.   

    protected属性就是为了继承才可以使用,API中有FilterInputStream的封装,直接拿来用就是了
    import java.io.*;public class File2 {
    public static void main(String[] args) throws Exception{
    File f = new File("d:\\filetest\\1.txt");
    FileInputStream fis = new FileInputStream(f);
    InputStreamReader is = new InputStreamReader(fis);
    BufferedReader br = new BufferedReader(is);
    while(br.read() != -1) {
    System.out.println(br.readLine());
    }
                     br.close();
                     is.close();
                     fis.close();
    }
    }
      

  3.   

    import java.io.*; 
    public class File2 

    public static void main(String[] args) 

    File f=new File("d:\\filetest\\1.txt"); 
    try {
    InputStream fis=new FileInputStream(f); 
    FilterInputStream filter=new BufferedInputStream(fis); 

    for(int i=0;i <f.length(); i++) 

    System.out.print(filter.read()); 

    fis.close();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();



    构造方法是protected,可以使用其子类
    BufferedInputStream, CheckedInputStream, CipherInputStream, DataInputStream, DeflaterInputStream, DigestInputStream, InflaterInputStream, LineNumberInputStream, ProgressMonitorInputStream, PushbackInputStream 
    你的这两个错误都是编译错误,第二个错误时没有read(int i)这个方法