Tempter, а файлы какого формата читать собираетесь? (пдф, джвю, тхт, хтмл). Или надо, чтобы все сразу читало?
Коллектив дает хороший обмен опытом и быстрое освоение чего-либо. И не важно, живое ли это общение или конференция по скайпу.
beginerx, а я, кстати, сейчас примерно так и выгляжу, спустя полгода жироуничтожения. Недельки через две подсушусь и выложу фоточки.
beginerx, кто его на десятиборье без трусов-то допустил!
хз, два планшета по почте доехали, ни одного разбитого экрана :D
Ну, не все, есть просто психи, которые видят галюны.
Manishka, не поверишь, специально для тебя написал!
Надо скомпилировать файлы и запустить через java -jar path/CSVSearcher.jar
Вообще у меня пути прописаны не правильно, надо будет подправить))
Через Eclipse-то работает! ☝
package csv.searcher; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.JTextPane; public class CSVSearcher { JFrame jf = new JFrame(); CSVSearcher() { jf.setTitle("CSVSearcher"); jf.setSize(400, 110); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setResizable(false); jf.setLocationRelativeTo(null); jf.add(new Jpn()); jf.setVisible(true); } JPanel jpCons = new JPanel(); JButton load = new JButton("Подсчитать количество строк"); JTextPane jTextPane = new JTextPane(); JPanel jpText = new JPanel(); JTextField textField = new JTextField(27); JButton search = new JButton("Поиск!"); FlowLayout textView = new FlowLayout(); MyListener ml = new MyListener(); class Jpn extends JPanel { Jpn() { jpText.setLayout(textView); jpText.add(textField); search.addActionListener(ml); jpText.add(search); add(jpText, BorderLayout.NORTH); jTextPane.setEnabled(false); jTextPane.setText("Всего строк: 0"); jpCons.add(jTextPane, BorderLayout.EAST); load.addActionListener(ml); jpCons.add(load, BorderLayout.WEST); add(jpCons, BorderLayout.SOUTH); } } CSVreader csvR = new CSVreader(); public static void main(String[] args) { new CSVSearcher(); } List<String> result = new ArrayList<String>(); class MyListener implements ActionListener { @Override public void actionPerformed(ActionEvent ev) { if(ev.getSource() == load) { load.setEnabled(false); CSVreader csvR = new CSVreader(); jTextPane.setText("Всего строк: "+csvR.listStrings.size()); load.setEnabled(true); } if(ev.getSource() == search) { search.setEnabled(false); String str = textField.getText(); CSVreader csvR = new CSVreader(); if(str != null && str.length() > 0 && csvR.listStrings.size() > 0) { for(String se : csvR.listStrings) { if(se.contains(str)) { result.add(se); } } // for result String res = ""; for(String se : result) { res += se+"\n"; } File parentDir = new File("result/"); parentDir.mkdir(); String hash = new Date().toString().replace(":", "-"); String fileName = hash + ".csv"; File file = new File(parentDir, fileName); System.out.println(fileName); try { file.createNewFile(); FileWriter fstream = new FileWriter(file); BufferedWriter out = new BufferedWriter(fstream); out.write(res); out.close(); JOptionPane.showMessageDialog(jf, "Файл сохранен: /result/"+hash+".csv"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else { JOptionPane.showMessageDialog(jf, "В поле пусто и свежо"); } search.setEnabled(true); } } } }
package csv.searcher; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class CSVreader { String path = "source/"; File F = new File(path); File[] listF = F.listFiles(); List<String> listFiles = new ArrayList<String>(); List<String> listStrings = new ArrayList<String>(); CSVreader() { System.out.println(F.getAbsolutePath()); if(F != null) { read(); } } public void read() { // load list for(int i = 0; i < listF.length; i++) { if(listF.isFile()) { listFiles.add(path+listF.getName()); } } // read all files for(String str : listFiles) { FileReader fr = null; try { fr = new FileReader(str); } catch (FileNotFoundException e) { e.printStackTrace(); } BufferedReader br = new BufferedReader(fr); String sLine; try { while((sLine = br.readLine()) != null) { listStrings.add(sLine); } br.close(); } catch (IOException e) { e.printStackTrace(); } } } }
Он сбросил 7 кг жира за 2,5 месяца)))