我正在使用此方法从JAR中的文本文件读取并正确工作。
BufferedReader Bbr=new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("AllBookRecords.txt")));
现在,我要写入文件(从文件删除一行,通过从第一个文件写入第二个文件而没有特定的行)。
我使用此代码执行此操作:
String Bookid=tf1.getText();
File Tf=new File("Boutput.txt");
URL myUrl=getClass().getResource("AllBookRecords.txt");
File file=new File(myUrl.toURI());
OutputStream myoutput=new FileOutputStream(file);
PrintWriter pw2=new PrintWriter(myoutput);
String Bs;
while( (Bs=Bbr.readLine()) != null ){
String[] Ust=Bs.split(" ");
String Bname=Ust[0];
String Bdate=Ust[1];
String id=Ust[2];
if(!id.equals(Bookid.trim())){
pw2.println(Bs);
}
}
pw2.close();
Bbr.close();
file.delete();
Tf.renameTo(file);
} catch(FileNotFoundException fnfe){
foundlable.setText("File Not Found");
} catch(IOException ioe){
foundlable.setText("IO Error");
ioe.printStackTrace();
}
catch(URISyntaxException ue){
ue.printStackTrace();
}
但是java.lang.IllegalArgumentException发生了:
C:\Windows\System32>java -jar "C:\Users\khoy\Documents\NetBeansProjects\JavaApplication6\dist\JavaApplication6.jar"
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.<init>(File.java:363)
at Library.ReadBookFileToListM$3.actionPerformed(ReadBookFileToListM.java:67)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
我的文件在Classpath中。
谢谢。
你不能那样做。
jar本身就是文件,而不是目录。它包含Java知道如何读取的资源。但是,jar中的资源不是文件,因此不能用作文件。据我所知,将新数据写入jar的唯一方法是获取内容,进行更改并创建一个全新的jar。
问题内容: 如何从JAR Java编译项目中写入.txt文件? 当我运行项目时,它不会给出错误,但不会将其写入JAR文件中。 我使用以下方法制作JAR文件: 码: 问题答案: 当您尝试在jar中写入文本文件时,java无法识别文本文件的绝对路径。 它会像 这不是绝对路径,因此无法写入文件。尝试从外部写入文件。
本文向大家介绍python写入xml文件的方法,包括了python写入xml文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python写入xml文件的方法。分享给大家供大家参考。具体分析如下: 本范例通过xml模块对xml文件进行写入操作 希望本文所述对大家的Python程序设计有所帮助。
问题内容: 我做了一个方法,需要一个和一个。它用该字符串作为内容的新文件替换该文件。 这就是我所做的: 但是,它非常缓慢。有时需要一分钟以上。 如何写出包含成千上万个字符的大文件? 问题答案: 确保分配了足够大的缓冲区: 您正在运行哪种操作系统?那也可以有很大的不同。但是,花一 分钟 时间写出一个小于大小的文件听起来像是系统问题。在Linux或其他* ix系统上,您可以使用类似的方法来查看JVM是
本文向大家介绍python写入中英文字符串到文件的方法,包括了python写入中英文字符串到文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python写入中英文字符串到文件的方法。分享给大家供大家参考。具体分析如下: python中如果使用系统默认的open方法打开的文件只能写入ascii吗,如果要写入中文需要用到codecs模块,下面的代码向 c:/1.txt文件写入 ”你好
本文向大家介绍C#使用StreamWriter写入文件的方法,包括了C#使用StreamWriter写入文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用StreamWriter写入文件的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。
问题内容: 我已经习惯了 但是,似乎已经弃用了。推荐使用哪种方法进行上述操作? 更新:关于…的所有这些答案,”\n”这是通用的还是特定于的?IE,我应该上运行吗? 问题答案: 这应该很简单: 从文档: 写入以文本模式打开的文件时(默认),请勿用作行终止符;在所有平台上都使用一个’\ n’代替。 一些有用的读物: with声明 open() ‘a’用于追加或使用 ‘w’截断书写 os(特别是os