我使用此方法写入文本文件(使用getResource()...在JAR文件中使用)。 我的文件在Classpath中, 这是我的代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class JarWrite {
public JarWrite(){
writethis();
}
public void writethis(){
try{
InputStreamReader isReader= new InputStreamReader(this.getClass().getResourceAsStream("AllBookRecords.txt"));
BufferedReader br = new BufferedReader(isReader);
PrintWriter writer1=new PrintWriter(new File(this.getClass().getResource("Boutput.txt").getPath()));
String Bs;
while( (Bs=br.readLine()) != null ){
writer1.println(Bs);
}
writer1.close();
br.close();
} catch(FileNotFoundException fnfe){
} catch(IOException ioe){
ioe.printStackTrace();
}
}
public static void main(String[] args){
new JarWrite();
}
}
答案 0 :(得分:5)
您无法从CLASSPATH修改资源。它们是只读的。周期。
另请参阅:Java OutputStream equivalent to getClass().getClassLoader().getResourceAsStream()。
答案 1 :(得分:-1)
尝试更改:
public void writethis
到
public static void writethis