草庐IT

file-system-folder

全部标签

java - Java读写XML数据文件报错"Premature end of file"

我一直在使用JDOM库通过JavaServlet读写XML文件。问题是,当我使用AJAX向读取和写入XML文件中的数据的servlet发送许多请求时,很多时候它无法显示错误:文件过早结束。我怎样才能将所有这些读/写同步到文件或者有没有其他方法可以防止这些问题?如果需要更多详细信息,请告诉我。在这种情况下使用线程会有什么好处吗?非常感谢! 最佳答案 两种可能的解决方案是:将您的文件写入thename.xml.part,然后在完成/关闭后重命名为thename.xml,这使得写入更接近于原子性——只要确定完成,读者就无法读取它它仅查找“

System.out 中的 Java 执行细节

我记得Java中有一个神奇的命令行选项,可以将当前执行的操作写入控制台。输出看起来像字节码。-verbose不匹配,因为它只打印类加载,而此选项输出内存分配、设置局部变量等信息。非常详细,例如“Helloworld”的10行。我这里没找到https://www.oracle.com/java/technologies/javase/vmoptions-jsp.html或这里https://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/java.html.我也找到了一些flags,但它们中的大多数只能在openjdk或开发模式下工作

java - File.length() 在 Java 中返回不正确的值

在文件对象上调用.length()时,超过2GB的文件返回不正确的值。这是在tomcat容器中运行的Web应用程序中发生的。例如,Windows报告为2,083,344,714字节的文件从Java返回为1887961088。以下是环境细节:jdk1.6.0_24(64位)JavaJotSpot(TM)64位服务器虚拟机(内部版本17.0-b17,混合模式)Tomcat6.0.29window服务器2008r2所以我立即怀疑与32位虚拟机有关,但一切似乎都在64位中运行。我完全被难住了,任何帮助将不胜感激,如果只是帮助开发一些测试以查看问题是否与以某种方式在32模式下运行的东西有关..编

java - 为什么我从 system.out.println() 和 system.exit() 得到两个不同的值?

System.out.println(Integer.parseInt(e.getMessage()));System.out.println(e.getMessage());System.exit(Integer.parseInt(e.getMessage()));当我在unix中运行代码时system.exit(Integer.parseInt(e.getMessage()))给出254输出:-2-2254 最佳答案 您的操作系统的退出代码是无符号8位整数,因此唯一有效的退出代码是0..255。你得到254的原因是因为它是int

java - 使用 log4j2 将 System.out 写入文件

是否可以像“旧”log4j那样将System.out(OutputStream)直接写入日志文件?我只找到log4j的解决方案,没有找到log4j2感谢您的帮助! 最佳答案 使用log4j2-iostreams模块非常容易。假设我们要将所有消息从System.out发送到名称为system.out且日志级别为INFO的记录器:System.setOut(IoBuilder.forLogger(LogManager.getLogger("system.out")).setLevel(Level.INFO).buildPrintStre

java - File.delete() 是否删除 File 对象的指针?

我和我的同事正在争论File.delete()方法在Java中的工作原理。在我们的代码中:FileoutFile=newFile("/dir/name.ext");if(outFile.exists())outFile.delete();FileInputStreaminStream=newFileInputStream(outFile);WriteFile.writeFile(inStream);//Writestheactualfile出于安全原因,我不能在此处包含writeFile的整个方法体,但在创建所需的数据库对象后,它会执行以下操作:BufferedOutputStream

Java JLabel/JButton : on some systems I get "..." (an ellipsis) and on some systems I don't. 我怎样才能强制禁用省略号?

在大多数系统上,我的JLabel中的内容都能正常显示。它也以一种方式驻留,它应该总是足够大以显示其内容文本,因为我基本上是这样做的:label.setText(text);label.setFont(newFont(fontName,0,12));intwidth=label.getFontMetrics(label.getFont()).stringWidth(text);intheight=21;//thisshouldalwaysbeenoughlabel.setBounds(newRectangle(x,y,width,height));但是在某些系统上(不是我自己的,所以我真

使用 findbugs 的 java 编译错误。 com.sun.tools.javac.code.Symbol$CompletionFailure : class file for javax. annotation.meta.When not found

我正在尝试使用findbugs1.3.2的注释。我在一个简单的测试中使用了edu.umd.cs.findbugs.annotations.NonNull注释,它工作正常。但是,现在我有一个大项目,由子模块组成,使用maven,我通过在某个java文件中导入该注释得到以下编译错误:com.sun.tools.javac.code.Symbol$CompletionFailure:classfileforjavax.annotation.meta.Whennotfound可能是什么问题?我尝试在所有子模块中添加findbugs依赖项。也许它与jsr305冲突?我看到我们的依赖项之一使用js

Java jackson : Parsing a csv file into an object containing a List of objects

我正在尝试使用JacksonCsvParser将一个csv文件解析为一个对象,该对象还包含另一个类的列表。因此前两列包含需要绑定(bind)到父类的数据,之后的数据需要绑定(bind)到另一个类。publicclassPerson{privateStringname;privateStringage;privateListcarDetails;//Getters+setters}publicclassCarDetails{privateStringcarMake;privateStringcarRegistration;//Getters+setters}要解析的日志如下所示:John

java - 启动 Jenkins bash :/usr/bin/java: No such file or directory

我有一个CentOS服务器,我正在尝试将jenkins作为服务运行:servicejenkinsstart我以root用户身份运行,我收到以下响应:StartingJenkinsbash:/usr/bin/java:Nosuchfileordirectory[FAILED]我在命令行中echo了一些东西:[root@xyzopt]#echo$JAVA_HOME/opt/jdk[root@xyzopt]#echo$PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/op