import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
public class readCurve {    public static void readFolderByFile(String filePath,String writeFile)
    { 
    File file = new File(filePath); 
    File[] tempFile = file.listFiles(); 
    for(int i = 0;i<tempFile.length;i++) 
    { 
    if(tempFile[i].isFile()) 
    { 
     System.out.println("File : "+filePath+tempFile[i].getName()); 
  FileReader fr= new FileReader(filePath+tempFile[i].getName());
BufferedReader br = new BufferedReader(fr); 
FileWriter fw = new FileWriter(writeFile); 
PrintWriter outprint = new PrintWriter(fw); 
String record = new String(); 
while ((record = br.readLine())!= null)
   { 
if(record.length()>40)
outprint.print(record+"\r\n");
   }
br.close(); 
fr.close(); 
outprint.close(); 
fw.close(); 
  
    } 
    
    if(tempFile[i].isDirectory()) 
    { 
    System.out.println("Directory : "+tempFile[i].getName()); 
    } 
    } 
      
    } 
public static void main(String[] args) {
  readFolderByFile("d:\\curves\\","d:\\writeFile.txt");
        
}}上述代码主要是为了读写d:\\curves\\下的文件,并把文件中一行长度大于40的一行写入到另一文件中,可是总
出现错误提示:错误在哪儿?文件肯定是有的. Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
Unhandled exception type FileNotFoundException
Unhandled exception type IOException
Unhandled exception type IOException
Unhandled exception type IOException
Unhandled exception type IOException
Unhandled exception type IOException at readCurve.readFolderByFile(readCurve.java:19)
at readCurve.main(readCurve.java:44)

解决方案 »

  1.   

    代码没问题,增加异常声明就可以了
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.PrintWriter;public class readCurve
    {
        
        public static void readFolderByFile(String filePath, String writeFile) throws Exception
        {
            File file = new File(filePath);
            File[] tempFile = file.listFiles();
            for (int i = 0; i < tempFile.length; i++)
            {
                if (tempFile[i].isFile())
                {
                    System.out.println("File : " + filePath + tempFile[i].getName());
                    FileReader fr = new FileReader(filePath + tempFile[i].getName());
                    BufferedReader br = new BufferedReader(fr);
                    FileWriter fw = new FileWriter(writeFile);
                    PrintWriter outprint = new PrintWriter(fw);
                    String record = new String();
                    while ((record = br.readLine()) != null)
                    {
                        if (record.length() > 40)
                            outprint.print(record + "\r\n");
                    }
                    br.close();
                    fr.close();
                    outprint.close();
                    fw.close();
                    
                }
                
                if (tempFile[i].isDirectory())
                {
                    System.out.println("Directory : " + tempFile[i].getName());
                }
            }
            
        }
        
        public static void main(String[] args) throws Exception
        {
            readFolderByFile("d:\\curves\\", "d:\\curves\\writeFile.txt");
            
        }
        
    }
      

  2.   


    import java.io.BufferedReader; 
    import java.io.File; 
    import java.io.FileReader; 
    import java.io.FileWriter; 
    import java.io.PrintWriter; 
    public class readCurve { 
         //IO包需要捕捉异常
        public static void readFolderByFile(String filePath,String writeFile)throws Exception //抛出异常
        { 
        try{
        File file = new File(filePath); 
        File[] tempFile = file.listFiles(); 
        for(int i = 0;i <tempFile.length;i++) 
        { 
        if(tempFile[i].isFile()) 
        { 
        System.out.println("File : "+filePath+tempFile[i].getName()); 
    FileReader fr= new FileReader(filePath+tempFile[i].getName()); 
    BufferedReader br = new BufferedReader(fr); 
    FileWriter fw = new FileWriter(writeFile); 
    PrintWriter outprint = new PrintWriter(fw); 
    String record = new String(); 
    while ((record = br.readLine())!= null) 
      { 
    if(record.length()>40) 
    outprint.print(record+"\r\n"); 
      } catch(Exception ex){
       ex.printStackTrace();//打印异常信息
    }finally{//关闭流
    if(br!=null){
    br.close(); 
    }
    if(fr!=null){
    fr.close(); 
    }
    if(outprint!=null){
    outprint.close(); 
    }
    if(fw!=null){
    fw.close(); 

    }    } 
        
        if(tempFile[i].isDirectory()) 
        { 
        System.out.println("Directory : "+tempFile[i].getName()); 
        } 
        } 
          
        } 
    public static void main(String[] args) { 
      readFolderByFile("d:\\curves\\","d:\\writeFile.txt"); 
            
    } } 
      

  3.   

    加上try-catch.
    楼主还是用eclipse开发吧。 这样效率高很多的。不用关心编译错误了,她会提示的:)