Tag: java

应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()吗?

我找不到一个权威的答案,用谷歌search。 在Java servlet中,可以通过response.getOutputStream()或response.getWriter()来访问响应主体。 这个stream被写入后,是否应该调用.close()? 一方面,布洛赫的劝告总是closures输出stream。 另一方面,我不认为在这种情况下,有一个潜在的资源需要closures。 套接字的打开/closures在HTTP级别进行pipe理,以允许持久连接等。

从内部类调用外部类函数

我已经在Java中实现了一个嵌套类,我需要从内部类调用外部类方法。 class Outer { void show() { System.out.println("outter show"); } class Inner{ void show() { System.out.println("inner show"); } } } 我怎样才能调用Outer方法show ?

Java FileReader编码问题

我试图使用java.io.FileReader来读取一些文本文件,并将它们转换为string,但我发现结果是错误的编码,根本不可读。 这是我的环境: Windows 2003,操作系统编码:CP1252 Java 5.0 我的文件是UTF-8编码或CP1252编码,其中一些(UTF-8编码文件)可能包含中文(非拉丁)字符。 我使用下面的代码来完成我的工作: private static String readFileAsString(String filePath) throws java.io.IOException{ StringBuffer fileData = new StringBuffer(1000); FileReader reader = new FileReader(filePath); //System.out.println(reader.getEncoding()); BufferedReader reader = new BufferedReader(reader); char[] buf = new char[1024]; int numRead=0; while((numRead=reader.read(buf)) != -1){ String readData = String.valueOf(buf, 0, numRead); fileData.append(readData); buf = new char[1024]; } reader.close(); return […]

我是否需要closures()FileReader和BufferedReader?

我正在阅读本地文件使用一个BufferedReader包装在一个FileReader: BufferedReader reader = new BufferedReader(new FileReader(fileName)); // read the file // (error handling snipped) reader.close(); 我是否也需要close() FileReader ,或者封装处理? 我已经看到人们做这样的代码: FileReader fReader = new FileReader(fileName); BufferedReader bReader = new BufferedReader(fReader); // read the file // (error handling snipped) bReader.close(); fReader.close(); 这个方法是从一个servlet调用的,我想确保我不会打开任何句柄。

如何在Java中结合path?

System.IO.Path.Combine()在C#/ .NET中有相当于Java的Java吗? 或者任何代码来完成这个? 这个静态方法将一个或多个string组合到一个path中。

无法从Google Play Android开发者API获取订阅信息

我尝试使用Google API的Java客户端库来获取有关在我的Android应用程序中购买的用户订阅的信息。 这是我现在正在做的事情: HttpTransport HTTP_TRANSPORT = new NetHttpTransport(); JsonFactory JSON_FACTORY = new JacksonFactory(); GoogleCredential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT) .setJsonFactory(JSON_FACTORY) .setServiceAccountId(GOOGLE_CLIENT_MAIL) .setServiceAccountScopes("https://www.googleapis.com/auth/androidpublisher") .setServiceAccountPrivateKeyFromP12File(new File(GOOGLE_KEY_FILE_PATH)) .build(); Androidpublisher publisher = new Androidpublisher.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential). setApplicationName(GOOGLE_PRODUCT_NAME). build(); Androidpublisher.Purchases purchases = publisher.purchases(); Get get = purchases.get("XXXXX", subscriptionId, token); SubscriptionPurchase subscripcion = get.execute(); //Exception returned here GOOGLE_CLIENT_MAIL是来自Google Console的API访问的电子邮件地址。 GOOGLE_KEY_FILE_PATH是从API Access下载的p12文件。 GOOGLE_PRODUCT_NAME是品牌信息中的产品名称。 […]

Java Python集成

我有一个Java应用程序需要与第三方库集成。 图书馆是用Python编写的,我对此没有任何发言权。 我试图找出最好的方法来整合它。 我正在尝试JEPP(Javaembedded式Python) – 有谁曾经使用过? 我的另一个想法是使用JNI与Python的C绑定进行通信。 任何想法,最好的办法做到这一点,将不胜感激。 谢谢。

正则expression式来分割camelCase或TitleCase(高级)

我发现了一个辉煌的RegEx来提取驼峰或TitleCaseexpression的一部分。 (?<!^)(?=[AZ]) 它按预期工作: 价值 – >价值 camelValue – > camel / Value TitleValue – >标题/值 例如用Java: String s = "loremIpsum"; words = s.split("(?<!^)(?=[AZ])"); //words equals words = new String[]{"lorem","Ipsum"} 我的问题是,它在某些情况下不起作用: 情况1:价值 – > V / A / L / U / E 情况2:eclipseRCPExt – > eclipse / R / C / P / Ext 在我看来,结果应该是: […]

增加内存密集型应用程序的JVM最大堆大小

我需要运行一个使用超过2GB的Java内存密集型应用程序,但是我有问题增加了堆的最大大小。 到目前为止,我已经尝试了以下方法: 设置-Xmx参数,例如-Xmx3000m。 这种方法在创buildJVM时失败。 从我googlesearch,看起来像-Xmx必须小于2GB。 使用-XX:+ AggressiveHeap选项 。 当我尝试这种方法时,出现“内存不足”的错误,告知堆大小为1273.4 MB,即使我的计算机有8GB的内存。 有没有另一种方法可以尝试增加JVM的最大堆大小? 以下是计算机规格的摘要: 操作系统:Windows 7(64位) 处理器:Intel Core i7(2.66 GHz) 内存:8 GB java -version: java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)

GWT中的基本file upload

我想弄清楚如何使用GWT的FileUpload小部件上传一个文件。 我正在使用GWT和谷歌AppEngine与Java,但我想上传文件到我自己的Linux服务器。 我已经有了下面的代码,但现在我不知道如何提交我的文件到Google AppServer服务器并将其保存到另一台服务器: public class FileUploader{ private ControlPanel cp; private FormPanel form = new FormPanel(); private FileUpload fu = new FileUpload(); public FileUploader(ControlPanel cp) { this.cp = cp; this.cp.setPrimaryArea(getFileUploaderWidget()); } @SuppressWarnings("deprecation") public Widget getFileUploaderWidget() { form.setEncoding(FormPanel.ENCODING_MULTIPART); form.setMethod(FormPanel.METHOD_POST); // form.setAction(/* WHAT SHOULD I PUT HERE */); VerticalPanel holder = new VerticalPanel(); fu.setName("upload"); holder.add(fu); holder.add(new Button("Submit", […]