Java 运行swing导致驱动器内存过载

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

我正在用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 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
相关内容),并查看是否仍然存在相同的问题。可能是操作系统扩展了自己的磁盘缓存……这导致了递归函数