2013-08-15 5 views
0

Я искал в Интернете, чтобы искать выбранный каталог и использовать содержащиеся файлы .txt для преобразования в .csv для работы с данными в электронной таблице. Эта программа работает и работает со всем .txt, и я решил, что поделюсь с вами всеми моими выводами. Осталось только ограничить только файлы .txt, содержащие LOG в первых буквах, и это полный проект для меня.Выберите несколько файлов для ввода в таблицу

Код выглядит следующим образом:

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.util.StringTokenizer; 
import javax.swing.JFileChooser; 
import javax.swing.JOptionPane; 

public class LogReader 
{ 
    /** 
    * 
    */ 
    public static void main(String[] args) 
      throws IOException 
    { 

     // Creates a GUI based chooser for the user to select the directory to 
     // evaluate. 
     JFileChooser chooser = new JFileChooser(); 
     chooser.setCurrentDirectory(new File(".")); 
     chooser.setDialogTitle("Folder Chooser"); 
     chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
     chooser.setAcceptAllFileFilterUsed(false); 
     int returnVal = chooser.showOpenDialog(chooser); 

     if(returnVal == JFileChooser.APPROVE_OPTION) 
     { 
      JOptionPane.showMessageDialog(null, "The current directory is:\n" 
        + chooser.getSelectedFile().getAbsolutePath()); 

      String sourceFolder = chooser.getSelectedFile().getAbsolutePath(); 
      File folder = new File(sourceFolder); 
      String temp1; 
      String temp2 = "\\"; 
      String temp3; 
      FileWriter output = new FileWriter("Output Log.csv"); 
      BufferedReader reader; 

      // create list of files within a certain folder. 
      String[] files = folder.list(); 

      for(int i = 0; i < files.length; i++) 
      { 
       if(files[i].lastIndexOf('.') > 0) 
       { 
        int lastIndex = files[i].lastIndexOf('.'); 
        String str = files[i].substring(lastIndex); 
        if(str.equals(".txt")) 
        { 
         // Variables to concatenate the complete file directory 
         // pointer. 
         temp3 = files[i]; 
         temp1 = sourceFolder.concat(temp2); 
         temp1 = temp1.concat(temp3); 

         // Use the BufferedReader with the new file pointer and 
         // store it 
         // in line. 
         reader = new BufferedReader(new FileReader(temp1)); 
         String line = reader.readLine(); 
         while(line != null) 
         { 
          StringTokenizer tokens = new StringTokenizer(line, 
            " "); 

          while(tokens.hasMoreTokens()) 
          { 
           String word = tokens.nextToken(); 
           output.append(word + ','); 
          } 
          output.append('\n'); 

          // read next line 
          line = reader.readLine(); 
         } 
         output.append('\n'); 
        } 
       } 
      } 

      output.flush(); 
      output.close(); 

      // If the user selected cancel, then let them know. 
     } 
     else 
     { 
      JOptionPane.showMessageDialog(null, "No selection"); 
     } 
    } 
} 

ответ

0

мне просто нужно добавить логическое значение этого сравнить строку с определенными требованиями.

Смежные вопросы