Read the content of a fileTag(s): IO
From a Java application
This following example is for an application.import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; public class Cat { public static void main (String args[]) throws Exception { String line; FileInputStream fin = null; BufferedReader br = null; InputStreamReader isr = null; try { fin = new FileInputStream("D:/temp/howto.txt"); isr = new InputStreamReader(fin); br = new BufferedReader(isr); while ((line = br.readLine()) != null) { System.out.println(line); } } finally { if (br != null) br.close(); if (isr != null) isr.close(); if (fin != null) fin.close(); } } }
The following method read a data file and return the content as a String. We use a StringBuffer to optimize string concatenation operations.
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Cat { public static final String EOL = System.getProperty("line.separator"); private static String readFile(String filename) throws IOException { BufferedReader br = null; FileReader fr = null; try { fr = new FileReader(filename); br = new BufferedReader(fr); String nextLine = ""; StringBuilder sb = new StringBuilder(); while ((nextLine = br.readLine()) != null) { sb.append(nextLine); // note: BufferedReader strips the EOL character // so we add a new one! sb.append(EOL); } return sb.toString(); } finally { if (br != null) br.close(); if (fr != null) fr.close(); } } public static void main (String args[]) throws Exception { System.out.println(readFile("d:/temp/howto.txt")); } }
JDK1.5 provides the java.util.Scanner class which can be used to quickly read a file.
The delimeter "\Z" represents the end-of-file marker.
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class QuickFileRead { public static void main(String[] args) throws FileNotFoundException { Scanner scanner = new Scanner(new File("c:/temp/text.txt")).useDelimiter("\\Z"); String contents = scanner.next(); System.out.println(contents); scanner.close(); } }
JDK7+ provides, with the NIO package, a new way to get all the content of file quickly. You don't need to close anything because readAllLines() is taking care of that.
import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; public class Cat { public static void main (String args[]) throws Exception { Path path = Paths.get( "d:/temp/howto.txt" ); List <String> lines = Files.readAllLines(path, StandardCharsets.UTF_8); for (String element : lines) { System.out.println(element); } } }
See this HowTo to read a File stored in a JAR.
From a Java applet (deprecated)
With an Applet, we can only open file on the same server that the Applet is coming from.
import java.applet.*; import java.net.*; import java.io.*; public class MyApplet extends Applet { public void init() { readFile("mydatafile.txt"); } public void readFile(String f) { try { String aLine = ""; URL source = new URL(getCodeBase(), f); BufferedReader br = new BufferedReader (new InputStreamReader(source.openStream())); while(null != (aLine = br.readLine())) { System.out.println(aLine); } br.close(); } catch(Exception e) { e.printStackTrace(); } } }
The next Applet reads a data file and inserts the data in a Choice component.
import java.applet.*; import java.awt.*; import java.net.*; import java.io.*; public class ReadDataInChoice extends Applet { Choice myChoice; public void init() { myChoice = new java.awt.Choice(); add(myChoice); readFile("dataforchoice.txt"); } public void readFile(String f) { try { String anItem = ""; URL source = new URL(getCodeBase(), f); BufferedReader in = new BufferedReader(new InputStreamReader(source.openStream())); while(null != (anItem = in.readLine())) { myChoice.add(anItem); } in.close(); } catch(Exception e) { e.printStackTrace(); } } }
[dataforchoice.txt]
item 1 item 2 item 3 item 4 item 5 ITEM 6
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com