Я искал в Интернете, чтобы искать выбранный каталог и использовать содержащиеся файлы .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");
}
}
}