【问题标题】:how to read directories in java如何在java中读取目录
【发布时间】:2011-08-16 01:04:30
【问题描述】:

简单:我如何读取 Java 中目录的内容,并将该数据保存在数组或某种变量中?其次,如何在Java中打开一个外部文件?

【问题讨论】:

    标签: java file-io directory


    【解决方案1】:

    您可以使用 java.io.File 类来做到这一点。文件是文件和目录路径名的抽象表示。您可以使用File.list() 方法检索其中的文件/目录列表。

    【讨论】:

      【解决方案2】:

      您可以使用 java IO API。具体java.io.Filejava.io.BufferedReaderjava.io.BufferedWriter

      假设打开您的意思是打开文件以供阅读。另外,为了更好地理解 Java I/O 功能,请查看此链接:http://download.oracle.com/javase/tutorial/essential/io/

      检查下面的代码。

      import java.io.BufferedReader;
      import java.io.File;
      import java.io.FileReader;
      import java.io.IOException;
      
      public class FileIO 
      {
          public static void main(String[] args) 
          {
              File file = new File("c:/temp/");
      
              // Reading directory contents
              File[] files = file.listFiles();
      
              for (int i = 0; i < files.length; i++) {
                  System.out.println(files[i]);
              }
      
              // Reading conetent
      
              BufferedReader reader = null;
      
              try {
                  reader = new BufferedReader(new FileReader("c:/temp/test.txt"));
                  String line = null;
      
                  while(true)
                  {
                      line = reader.readLine();
                      if(line == null)
                          break;
      
                      System.out.println(line);
                  }
              }catch(Exception e) {
                  e.printStackTrace();
              }finally {
                  if(reader != null)
                  {
                      try {
                          reader.close();
                      } catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
              }
          }
      }
      

      【讨论】:

        【解决方案3】:

        还有Commons IO package,它有多种操作文件和目录的方法。

        import java.io.File;
        import java.io.IOException;
        import java.util.Collection;
        
        import org.apache.commons.io.FileUtils;
        import org.apache.commons.io.filefilter.FileFilterUtils;
        
        public class CommonsIO 
        {
            public static void main( String[] args ) 
            {
                // Read the contents of a file into a String
                try {
                    String contents = FileUtils.readFileToString( new File( "/etc/mtab" ) );
                } catch (IOException e) {
                    e.printStackTrace();
                }
        
                // Get a Collection of files in a directory without looking in subdirectories
                Collection<File> files = FileUtils.listFiles( new File( "/home/ross/tmp" ), FileFilterUtils.trueFileFilter(), null );
        
                for ( File f : files ) {
                    System.out.println( f.getName() );
                }
            }
        }
        

        【讨论】:

          【解决方案4】:
          public class StackOverflow {
          
              public static void main(String[] sr) throws IOException{
                  //Read a folder and files in it
                  File f = new File("D:/workspace");
                  if(!f.exists())
                      System.out.println("No File/Dir");
                  if(f.isDirectory()){// a directory!
                      for(File file :f.listFiles()){
                          System.out.println(file.getName());
                      }
                  }
          
                  //Read a file an save content to a StringBuiilder
                  File f1 = new File("D:/workspace/so.txt");
                  BufferedReader br = new BufferedReader(new FileReader(f1));
                  StringBuilder sb = new StringBuilder();
                  String line = "";
                  while((line=br.readLine())!=null)
                      sb.append(line+"\n");
          
                  System.out.println(sb);
              }
          }
          

          【讨论】:

            猜你喜欢
            • 2021-01-29
            • 2019-08-12
            • 2020-03-16
            • 1970-01-01
            • 2011-09-04
            • 2012-11-22
            • 1970-01-01
            • 2021-02-24
            • 1970-01-01
            相关资源
            最近更新 更多