package net.jtank.io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.StringReader; import java.io.FileReader; import java.io.FileWriter; import java.io.InputStreamReader; import java.io.IOException; import java.io.FileNotFoundException; import java.io.File; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.FileInputStream; import java.io.FileOutputStream; import javax.swing.*; import javax.swing.filechooser.FileFilter; import java.awt.*; import java.awt.event.*; import java.util.List; import java.util.ArrayList; import java.net.URL; import java.net.MalformedURLException; import java.net.URLConnection; public class FileUtil { public static BufferedReader getFileSpecificBufferedReader (String filename) throws IOException { BufferedReader br = null; // Cater for applets, which will have http:// or file:/ in their paths. if (filename.lastIndexOf(":/") == -1) { br = new BufferedReader(new InputStreamReader( new FileInputStream(filename), "UTF-8")); } else { try { //Get the BufferedReader to read an URL URL url = new URL(filename); URLConnection conn = null; InputStreamReader data = null; conn = url.openConnection(); conn.connect(); br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); //br = new BufferedReader(new FileReader(new File(new URI(filename)))); } catch (MalformedURLException e) { } } return br; } public static String fileChooser (Component component, String title, FileFilter filter, String workingDir, String defaultExt) { JFileChooser fileChooser = new JFileChooser(); fileChooser.setCurrentDirectory(new File (workingDir )); try { fileChooser.addChoosableFileFilter(filter); } catch (NullPointerException e) { } fileChooser.setDialogTitle(title); int result = fileChooser.showOpenDialog(component); String sep = System.getProperty("file.separator"); if(result == JFileChooser.APPROVE_OPTION) { String addition = ""; if (defaultExt != null && fileChooser.getSelectedFile().getName().lastIndexOf(".") == -1) { addition = "." + defaultExt; } workingDir = fileChooser.getCurrentDirectory().toString(); String tmp = fileChooser.getCurrentDirectory().getAbsolutePath()+sep + fileChooser.getSelectedFile().getName() + addition; System.out.println(tmp); //tmp = fileChooser.getCurrentDirectory().toString() +sep + fileChooser.getSelectedFile().getName() + addition; return tmp; } else { return null; } } public static String getBaseDirectory () { try { File f = new File(""); String baseDirectory = f.getAbsolutePath() + "/"; return baseDirectory; } catch (Exception e) { //this.getCodeBase().toString(); return ""; } } public static String getContents (BufferedReader br) throws IOException { if (br == null) throw new IOException (); String fileContents = ""; String line = br.readLine(); while (line != null) { fileContents += line + "\n"; line = br.readLine(); } return fileContents; } public static void writeFile(String filename, String text) throws IOException { BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename), "UTF-8")); bw.write(text); bw.close(); } }