文件过滤器的问题
import java.io.*;public class FindDirectories 
{
    public static void main(String[] args)
    {
        File pathName= new File("E:");
        ExtensionFilter filter=new ExtensionFilter("txt");  //有问题?不会改
        String[]  fileNames=pathName.list(filter);
        for(int i=0; i<fileNames.length; ++i)
        {
         System.out.println(fileNames[i]);
        }
    }
    
    public class ExtensionFilter implements FilenameFilter
    {
     public ExtensionFilter(String ext)
     {
     extension="."+ext;
     }     public boolean accept(File dir,String name)
     {
     return name.endsWith(extension);
     }
    
     private String extension;
    }
}
文件读取的问题:
import java.io.*;
import java.util.*;public class FileTest1 
{
    public static void main(String[] args)
    {
     File f=new File("F:\\java\\123.txt");
     try
     {
       if(f.exists())
       {
         DataInputStream in=new DataInputStream(new FileInputStream(f));
         while(in.read()!=-1)
         {
          int n=in.readInt();
          System.out.println(n);
         }
       }
       else
       {
     f.createNewFile();
       }
     }
     catch(IOException e)
     {
     System.out.println(e);
     }
    }
}
123.txt中只有int的数据(12 23 56) 为什么无法读取?初学java  谢谢

解决方案 »

  1.   

     while(in.read()!=-1) 
            { 
            int n=in.readInt(); 
            System.out.println(n); should be like this:int n = 0;
    while((n = in.readInt())!= -1){
       System.out.println(n);
      

  2.   

        public class ExtensionFilter implements FilenameFilter 
        { 
        public ExtensionFilter(String ext) 
        { 
        extension="."+ext; 
        }     public boolean accept(File dir,String name) 
        { 
        return name.endsWith(extension); 
        } 
        
        private String extension; 
        } 
    } What is "extension"? Where did u define this variable?
      

  3.   


    Sorry,,,,,I didn't see u define it at the bottom of code....
      

  4.   


    还是不行啊
    eclipse下是:
      
    825368626
    857748276
    java.io.EOFException
      

  5.   

    Sorry, I know what's going on...int n = 0; 
    while((n = in.read())!= -1){ 
      System.out.println((char)n);Try this code...
      

  6.   

    int n = 0; 
    while((n = in.read())!= -1){ 
      System.out.println((char)n);一个一个字节读取  我想读取int  不过还是谢谢justinavril 
      

  7.   

    读int?
    那就要一行一行的读  readLine(),然后用split分割.再转换就欧了
      

  8.   

                BufferedReader in=new BufferedReader(new FileReader(f));
             String s;
             while((s = in.readLine())!=null)
             {
              StringTokenizer t=new StringTokenizer(s," ");
              while(t.hasMoreTokens())
              {
                     System.out.println(t.nextToken());
              }
             }
    我知道可以这样处理,但为什么不能用readInt()呢?
    java里的流没有c++的方便啊
      

  9.   

    目录文件过滤import java.io.File;
    import java.io.FilenameFilter;public class FindDirectories { public static void main(String[] args) {
    File pathName = new File("E:\\");//这里注意要加上\\或/(E:\\或E:/)
    String[] fileNames = pathName.list(new FilenameFilter(){
    public boolean accept(File dir, String name) {
    if(name.endsWith(".txt")) return true;
    return false;
    }
    });
    for (int i = 0; i < fileNames.length; ++i) {
    System.out.println(fileNames[i]);
    }
    }}
    读取文件import java.io.DataInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;public class FileTest1 {
    public static void main(String[] args) {
    File f = new File("E:\\123.txt");
    try {
    if (f.exists()) {
    DataInputStream in = new DataInputStream(new FileInputStream(f));
    /*DataInputStream 一般用来读DataOutputStream写出来的东西,而不是你自己用notepad写的东西。*/ 
    System.out.println(in.readLine());//这个方法已经不推荐使用了.但是可以看到结果.
    } else {
    f.createNewFile();
    }
    } catch (IOException e) {
    System.out.println(e);
    }
    }}
      

  10.   

    文件过滤器的问题:楼主犯了语法错误啊。一个java文件中只能定义一个public类型的类。而楼主在这个类中定义了两个public 类。
    我的修改如下:public class FindDirectories  { /**
     * @param args
     */
    public static void main(String[] args) {
    File pathName = new File("E:\\");
    ExtensionFilter filter = new ExtensionFilter("txt");
    String[] fileNames = pathName.list(filter);
    for (int i = 0; i < fileNames.length; ++i) {
    System.out.println(fileNames[i]);
    }
    }

    }class ExtensionFilter implements FilenameFilter {
    public ExtensionFilter(String ext) {
    extension = "." + ext;
    } public boolean accept(File dir, String name) {
    return name.endsWith(extension);
    } private String extension;
    }这样就没问题了。
      

  11.   

    import java.io.*;
    import java.io.FileFilter.*;public class FindDirectories 
    {
        public static void main(String[] args)
        {
            File pathName= new File("E:\\");
            ExtensionFilter filter=new ExtensionFilter("txt");
            String[]  fileNames=pathName.list(filter);
            for(int i=0; i<fileNames.length; ++i)
            {
             System.out.println(fileNames[i]);
            }
        }
        
        public class ExtensionFilter implements FilenameFilter
        {
         public ExtensionFilter(String ext)
         {
         extension="."+ext;
         }     public boolean accept(File dir,String name)
         {
         return name.endsWith(extension);
         }
        
         private String extension;
        }
    }
    为什么这样写就不行呢? 一定要用匿名类吗?Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    No enclosing instance of type FindDirectories is accessible. Must qualify the allocation with an enclosing instance of type FindDirectories (e.g. x.new A() where x is an instance of FindDirectories). at FindDirectories.main(FindDirectories.java:9)