Java 运行swing导致驱动器内存过载
我正在用java为一家书店制作一个管理软件。我的服务器上有一个数据库。我通过php代码获取数据库数据。php代码也在我的服务器中。我使用下面的代码通过运行php代码获取数据Java 运行swing导致驱动器内存过载,java,php,swing,Java,Php,Swing,我正在用java为一家书店制作一个管理软件。我的服务器上有一个数据库。我通过php代码获取数据库数据。php代码也在我的服务器中。我使用下面的代码通过运行php代码获取数据 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class HttpUtility {
private static HttpURLConnection httpConn;
public static HttpURLConnection sendGetRequest(String requestURL)
throws IOException {
URL url = new URL(requestURL);
httpConn = (HttpURLConnection) url.openConnection();
httpConn.setUseCaches(false);
httpConn.setDoInput(true);
httpConn.setDoOutput(false);
return httpConn;
}
public static HttpURLConnection sendPostRequest(String requestURL,
Map<String, String> params) throws IOException {
URL url = new URL(requestURL);
httpConn = (HttpURLConnection) url.openConnection();
httpConn.setUseCaches(false);
httpConn.setDoInput(true);
StringBuffer requestParams = new StringBuffer();
if (params != null && params.size() > 0) {
httpConn.setDoOutput(true);
Iterator<String> paramIterator = params.keySet().iterator();
while (paramIterator.hasNext()) {
String key = paramIterator.next();
String value = params.get(key);
requestParams.append(URLEncoder.encode(key, "UTF-8"));
requestParams.append("=").append(
URLEncoder.encode(value, "UTF-8"));
requestParams.append("&");
}
OutputStreamWriter writer = new OutputStreamWriter(
httpConn.getOutputStream());
writer.write(requestParams.toString());
writer.flush();
}
return httpConn;
}
public static String readSingleLineRespone() throws IOException {
InputStream inputStream = null;
if (httpConn != null) {
inputStream = httpConn.getInputStream();
} else {
throw new IOException("Connection is not established.");
}
BufferedReader reader = new BufferedReader(new InputStreamReader(
inputStream));
String response = reader.readLine();
reader.close();
return response;
}
public static String[] readMultipleLinesRespone() throws IOException {
InputStream inputStream = null;
if (httpConn != null) {
inputStream = httpConn.getInputStream();
} else {
throw new IOException("Connection is not established.");
}
BufferedReader reader = new BufferedReader(new InputStreamReader(
inputStream));
List<String> response = new ArrayList<String>();
String line = "";
while ((line = reader.readLine()) != null) {
response.add(line);
}
reader.close();
return (String[]) response.toArray(new String[0]);
}
public static void disconnect() {
if (httpConn != null) {
httpConn.disconnect();
}
}
}
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.io.OutputStreamWriter;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入java.net.urlcoder;
导入java.util.ArrayList;
导入java.util.Iterator;
导入java.util.List;
导入java.util.Map;
公共类HttpUtility{
专用静态HttpURLConnection httpConn;
公共静态HttpURLConnection sendGetRequest(字符串requestURL)
抛出IOException{
URL=新URL(请求URL);
httpConn=(HttpURLConnection)url.openConnection();
httpConn.setUseCaches(假);
httpConn.setDoInput(真);
httpConn.setDoOutput(假);
返回httpConn;
}
公共静态HttpURLConnection sendPostRequest(字符串requestURL,
映射参数)引发IOException{
URL=新URL(请求URL);
httpConn=(HttpURLConnection)url.openConnection();
httpConn.setUseCaches(假);
httpConn.setDoInput(真);
StringBuffer requestParams=新的StringBuffer();
if(params!=null&¶ms.size()>0){
httpConn.setDoOutput(真);
迭代器paramIterator=params.keySet().Iterator();
while(parameterator.hasNext()){
String key=paramIterator.next();
字符串值=params.get(键);
append(URLEncoder.encode(键,“UTF-8”);
requestParams.append(“=”).append(
编码(值,“UTF-8”);
requestParams.append(“&”);
}
OutputStreamWriter writer=新的OutputStreamWriter(
httpConn.getOutputStream());
writer.write(requestParams.toString());
writer.flush();
}
返回httpConn;
}
公共静态字符串readSingleLineRespone()引发IOException{
InputStream InputStream=null;
如果(httpConn!=null){
inputStream=httpConn.getInputStream();
}否则{
抛出新IOException(“未建立连接”);
}
BufferedReader reader=新的BufferedReader(新的InputStreamReader(
输入流);
字符串响应=reader.readLine();
reader.close();
返回响应;
}
公共静态字符串[]ReadMultipleLineRespone()引发IOException{
InputStream InputStream=null;
如果(httpConn!=null){
inputStream=httpConn.getInputStream();
}否则{
抛出新IOException(“未建立连接”);
}
BufferedReader reader=新的BufferedReader(新的InputStreamReader(
输入流);
列表响应=新建ArrayList();
字符串行=”;
而((line=reader.readLine())!=null){
响应。添加(行);
}
reader.close();
return(String[])response.toArray(新字符串[0]);
}
公共静态无效断开连接(){
如果(httpConn!=null){
httpConn.disconnect();
}
}
}
现在我面临着一个问题,像下面的图片链接(没有足够的声誉上传)。有3个图片链接
另一个链接在评论中。
每次请求后,我的C://驱动器都会丢失10MB的空间,我不知道为什么(非常抱歉,noob编码人员)
有人能帮我吗。在搜索查询之后,当你关闭程序时会发生什么?C://drive返回初始空间更改
HttpUtility
,以便它发送回“假装”数据(注释掉所有HttpURLConnection
相关内容),并查看是否仍然存在相同的问题。可能是操作系统扩展了自己的磁盘缓存……这导致了递归函数