Tag: java

如何真正从Java的classpath中读取文本文件

我正在尝试读取在CLASSPATH系统variables中设置的文本文件。 不是用户variables。 我正在试图获取inputstream如下所示: 将文件( D:\myDir )的目录放在CLASSPATH中,并尝试以下方法: InputStream in = this.getClass().getClassLoader().getResourceAsStream("SomeTextFile.txt"); InputStream in = this.getClass().getClassLoader().getResourceAsStream("/SomeTextFile.txt"); InputStream in = this.getClass().getClassLoader().getResourceAsStream("//SomeTextFile.txt"); 在CLASSPATH中放置文件的完整path( D:\myDir\SomeTextFile.txt ),并尝试上述3行代码。 但不幸的是,他们都没有工作,我总是在我的InputStream null 。

过滤Java集合的最佳方法是什么?

我想过滤一个基于谓词的java.util.Collection 。

行中的JTable重复值

我有一个JTable填充了一个自定义的DataModel (粘贴在下面),当我调用populate()方法时,它似乎用重复的数据填充表 – 每行一遍又一遍地填充相同的值。 然而,通过仔细检查(通过println()数据字段),数据模型没有错误 – 它保存着我所期望的格式的正确数据。 是什么赋予了? import java.util.ArrayList; import javax.swing.table.AbstractTableModel; @SuppressWarnings("serial") // we don't expect this app to ever use serialized classes. EVER. public class CollectionDataModel extends AbstractTableModel { private ArrayList<ArrayList<String>> data; public CollectionDataModel() { data = new ArrayList<ArrayList<String>>(); } @Override public int getColumnCount() { if(data.isEmpty()) return 0; return data.get(0).size(); } @Override public […]

运行时删除顶级容器

不幸的是,看起来这个最近closures的问题还没有得到很好的理解。 这是典型的输出: run: Trying to Remove JDialog Remove Cycle Done 🙂 Checking if still exists any of TopLayoutContainers JFrame JDialog Will Try Remove Dialog again, CycleNo. 1 ———————————————————– Trying to Remove JDialog Remove Cycle Done 🙂 Checking if still exists any of TopLayoutContainers JFrame JDialog Will Try Remove Dialog again, CycleNo. 2 ———————————————————– Trying to […]

什么是“x = x ++”之后的x?

当这个被执行时会发生什么(幕后)? int x = 7; x = x++; 也就是说,当一个variables是增加后分配给自己在一个语句? 我编译并执行了这个。 即使在整个陈述之后, x仍然是7。 在我的书中,它说x是递增的!

什么是Java?:操作符被调用,它有什么作用?

我一直在使用Java几年,但直到最近我还没有运行这个构造: int count = isHere ? getHereCount(index) : getAwayCount(index); 这可能是一个非常简单的问题,但有人可以解释吗? 我如何阅读? 我很确定我知道它是如何工作的。 如果isHere为真,则调用getHereCount() 如果isHere为false,则调用getAwayCount() 。 正确? 这个结构叫做什么?

如何解决java.lang.NoClassDefFoundError?

我已经在Oracle的Java教程中尝试了这个例子。 他们都编译好,但在运行时,都提出了这个错误: Exception in thread "main" java.lang.NoClassDefFoundError: graphics/shapes/Square at Main.main(Main.java:7) Caused by: java.lang.ClassNotFoundException: graphics.shapes.Square at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) … 1 more 我想我可能有错误的文件夹中的Main.java文件。 这是目录层次结构: graphics ├ Main.java ├ shapes | ├ Square.java | ├ Triangle.java ├ linepoint | ├ Line.java | ├ Point.java ├ spaceobjects […]

在Java中获取文件的MIMEtypes

我只是想知道大多数人从Java文件中获取MIMEtypes? 到目前为止,我已经尝试了两个utils: JMimeMagic & Mime-Util 。 第一个给我内存exception,第二个不正确closures它的stream。 我只是想知道是否有其他人有一个方法/库,他们使用和正常工作?

官方原因“软件导致连接中止:套接字写入错误”

给定这个堆栈跟踪片段 导致:java.net.SocketException:软件导致连接中止:套接字写入错误 在java.net.SocketOutputStream.socketWrite0(本地方法) 我试图回答以下问题: 什么代码抛出这个exception? (JVM?/ Tomcat?/我的代码?) 是什么导致这个exception被抛出? 关于#1: Sun的JVM源不包含这个确切的消息,但我认为文本软件导致连接中止:套接字写入错误是从本地实现SocketOutputStream : private native void socketWrite0(FileDescriptor fd, byte[] b, int off, int len) throws IOException; 关于#2 我的猜测是,这是当客户端已经终止连接,在得到完整的响应之前(例如发送请求,但在得到完整的响应之前,它被closures/终止/离线) 问题: 上述假设是否正确(#1和#2)? 这可以从这种情况分歧:“由于服务器端的networking错误,无法写入客户端”? 或者会呈现相同的错误信息? 最重要的是 : 是否有官方文件(例如来自Sun)说明上述情况? 我需要certificate这个堆栈跟踪是套接字客户端的“错误”,并且服务器没有办法避免它。 (除了捕获这个exception,或者使用一个非Sun Java虚拟机的SocketOutputStream,虽然两者都不能真正避免客户端终止的事实)

从jar中读取资源文件

我想从我的jar中读取资源,如下所示: File file; file = new File(getClass().getResource("/file.txt").toURI()); BufferredReader reader = new BufferedReader(new FileReader(file)); //Read the file 它在Eclipse中运行时工作正常,但如果我将其导出到jar运行它有一个IllegalArgumentException: Exception in thread "Thread-2" java.lang.IllegalArgumentException: URI is not hierarchical 我真的不知道为什么,但如果我改变,我发现一些testing file = new File(getClass().getResource("/file.txt").toURI()); 至 file = new File(getClass().getResource("/folder/file.txt").toURI()); 那么它的作用是相反的(它在jar中工作,但不是eclipse)。 我正在使用Eclipse和我的文件在文件夹是一个类文件夹。