存储已通过getClass()。getResourceAsStream读取的.properties文件中的更改

我正在编写一个java Web应用程序,它从.properties文件中读取属性。 由于我不知道.properties文件的绝对路径,因为它取决于应用程序将来运行的环境,我必须使用“getClass()。getResourceAsStream”加载它: Properties props = new Properties(); props.load(getClass().getResourceAsStream(“test.properties”)); message = props.getProperty(“testdata”); 这按预期工作。 现在我想在文件中更改testdata的值。 但是我无法打开要写入的Outputstream,因为我仍然不知道.properties文件的路径。 props.setProperty(“testdata”, “foooo”); props.store(new FileOutputStream(“?????”), null); 有没有办法获取文件的路径或我可以以某种方式使用已建立的属性对象? 欢迎任何想法允许我更改.properties文件。

在Java中查找总磁盘大小的便携方式(前java 6)

我需要在Java 5(或1.5,无论如何)中找到驱动器的总大小。 我知道Java 6在java.io.File中有一个新方法,但我需要它在Java 5中工作。 Apache Commons IO有org.apache.commons.io.FileSystemUtils来提供可用磁盘空间,但不提供总磁盘空间。 我意识到这是依赖于操作系统的,需要依赖凌乱的命令行调用。 我很喜欢它在“大多数”系统上工作,即windows / linux / macosx。 我最好使用现有的库,而不是编写自己的变体。 有什么想法吗? 谢谢。

如果计算的哈希码超过INTEGER MAX LIMIT会发生什么?

这是来自Java HashTable Class的hashCode()实现。 如果哈希表中的元素数量很大且哈希码超过INTEGER MAX LIMIT -2,147,483,648到2,147,483,647会怎么样? 我假设hashCodes将是正整数。 public synchronized int hashCode() { int h = 0; if (count == 0 || loadFactor < 0) return h; // Returns zero loadFactor = -loadFactor; // Mark hashCode computation in progress Entry[] tab = table; for (int i = 0; i < tab.length; i++) for (Entry e […]

generics和原始类型

我使用generics编写了一些代码,我遇到了以下我无法理解的情况: 我有接口IpRange,以及以下类: public class Scope<IpRange> { List<IpRange> rangesList; public List<IpRange> getRangesList() {return rangesList;} } 现在来自一些测试类,如果我写下面的内容: Scope myScope = new Scope(); scope.getRangesList().get(0) 我得到IpRange类型的对象,但如果我使用原始类型并执行此操作: Scope myScope = new Scope(); scope.getRangesList().get(0) 我得到了Object,我不能使用ipRange方法,除非我明确地将它转换为Range。 如果它本来是List我得到它,因为我使用原始类型编译器无法知道列表项的实际类型是什么,但在这种情况下它将始终是IpRange类型,所以为什么我’我没有得到对象? 问题在于,当我创建示波器时,我不一定知道实际的范围类型。 考虑这个构造函数:public Sc​​ope(String rangeStringList); 据我所知,字符串可以是“16.59.60.80”或“fe80 :: 10d9:159:f:fffa%”。 但我所知道的是,我将一些IpRange对象传递给编译器,我希望能够使用此接口,无论是ipv4还是ipv6。 而且由于即使我使用了行类型,编译器也可以确定这是ipRange,我想知道为什么java选择这样做

Java JSONObject获取子项

我想在我的网站上创建gmaps。 我找到了,如何获得坐标。 { “results” : [ { // body “formatted_address” : “Puławska, Piaseczno, Polska”, “geometry” : { “bounds” : { “northeast” : { “lat” : 52.0979041, “lng” : 21.0293984 }, “southwest” : { “lat” : 52.0749265, “lng” : 21.0145743 } }, “location” : { “lat” : 52.0860667, “lng” : 21.0205308 }, “location_type” : “GEOMETRIC_CENTER”, “viewport” […]

当有2个递归语句如下面的程序时,如何执行递归?

我之前发过一个问题但是我不够清楚。 我很抱歉这个混乱,但我的意思是,如果有一个程序,如: TreeNode createMinBST(int arr[], int start, int end) { if(end< start) return null; int mid = (start+end)/2; Treenode n= new Treenode(arr[mid]); n.left= createMinBST(arr, start, mid-1) //LINE a n.right= createMinBST(arr, mid+1, end); //LINE b return n; } LINE a和LINE b是如何展开的(就像在编码面试书中所说的那样)或它是如何工作的? LINE a是否一直到基本情况并返回值,然后LINE b执行? 或者两个递归语句同时归结为基本情况? 如果有人可以解释从上面给出的代码创建最小BST的明确路径,那么理解多个递归语句(这里是2-线a和线b)是如何发生的将是非常有帮助的。 非常感谢

在运行JUnit时,使用CDI bean注入EJB 3.1的问题

我使用@inject创建了一个EJB3.1并注入了CDI bean,但是在unit testing时遇到了一些问题,但是当从servlet测试它工作正常时。 我在WEB-INF文件夹中有beans.xml。 下面是我的EJB代码: @Stateless public class CdiUsingEjb { @Inject private HelloServletCDIPojo helloServletCDIPojo; public String greet() { assert helloServletCDIPojo != null; return helloServletCDIPojo.from(); } } 下面是我的CDI bean: public class HelloServletCDIPojo { public String from() { return “from HelloServletStateless CDI”; } } 我创建了一个JUnit类: public class CdiUsingEjbTest { @EJB private CdiUsingEjb cdiUsingEjb; @Before public void setUp() […]

Google Web Toolkit(GWT)创建读取更新和删除(CRUD)应用程序的示例

你好 有没有人知道基于Google Web Took(GWT)的创建读取更新和删除应用程序的任何示例。 也就是说,使用GWT来操纵和显示数据库内容的应用程序。 谢谢

如何使用servlet创建csv文件?

我想从servlet.Data下载csv文件servlet.Data来自Object[] obj=search.getSearch(); 我有数据object[] ,我需要写入csv并下载。 你能帮帮我怎么做servlet课吗?

删除listview项之间的间距

我正在尝试在Android中制作包含图像的ListView。 我希望图像在列表中相互对立,但我似乎无法将间距拉开。 这是我的listview.xml 这是我的listrow.xml 你可以看到我在这里谈论的间距: http : //imgbucket.info/img/kad67sjsg/stackoverflow.png