Read a text file from a jarTag(s): IO
import java.io.*;
import java.util.*;
public class FileUtils{
public static List<String> readTextFromJar(String s) {
InputStream is = null;
BufferedReader br = null;
String line;
ArrayList<String> list = new ArrayList<String>();
try {
is = FileUtils.class.getResourceAsStream(s);
br = new BufferedReader(new InputStreamReader(is));
while (null != (line = br.readLine())) {
list.add(line);
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (br != null) br.close();
if (is != null) is.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
return list;
}
public static void main(String args[]) throws IOException{
List<String> list = FileUtils.readTextFromJar("/datafile1.txt");
Iterator<String> it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
list = FileUtils.readTextFromJar("/test/datafile2.txt");
it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
datafile1.txt in the same directory as FileUtils.class (in the root) and datafile2.txt in a subdirectory called test
[datafile1.txt]
datafile1 line 1 datafile1 line 2 datafile1 line 3 datafile1 line 4 datafile1 line 5
[/test/datafile2.txt]
datafile2 line 1 datafile2 line 2 datafile2 line 3 datafile2 line 4 datafile2 line 5
Create the jar with
>"C:\Program Files\Java\jdk1.5.0\bin\jar" -cf MyJar.jar
FileUtils.class datafile.txt test/datafile.txt
C> java -cp MyJar.jar FileUtils
datafile1 line 1 datafile1 line 2 datafile1 line 3 datafile1 line 4 datafile1 line 5 datafile2 line 1 datafile2 line 2 datafile2 line 3 datafile2 line 4 datafile2 line 5
With an Applet, it's the same technique
import java.applet.*;
import java.io.*;
public class ReadFromJar extends Applet{
public void init(){
readTextFromJar("datafile1.txt");
readTextFromJar("test/datafile2.txt");
}
public void readTextFromJar(String s) {
String thisLine;
try {
InputStream is = getClass().getResourceAsStream(s);
BufferedReader br = new BufferedReader
(new InputStreamReader(is));
while ((thisLine = br.readLine()) != null) {
System.out.println(thisLine);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
>"C:\Program Files\Java\jdk1.5.0\bin\jar" -cf
MyJarApplet.jar ReadFromJar.class datafile1.txt test/datafile2.txt
<HTML><HEAD></HEAD><BODY> <APPLET CODE=ReadFromJar.class width=1 height=1 archive=MyJarApplet.jar> </APPLET> See java console for output</BODY></HTML>
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com