打开远程文件并写入

时间:2012-01-31 13:52:29

标签: java http file-io

我在服务器上打开一个txt文件,获取Int并希望将int递增1并再次将其写入文件。

我用这种方法获取文件:

    public int getCount() {
        try {
URL updateURL = new URL("http://myserver.gov/text.txt");
URLConnection conn = updateURL.openConnection();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);

int current = 0;
while((current = bis.read()) != -1){
    baf.append((byte)current);
}

/* Convert the Bytes read to a String. */
String tmp = new String(baf.toByteArray());
int count = Integer.valueOf(tmp);
return count;
        } catch(Exception e) {
            Log.e(TAG, "getAdCount Exception = " + e);
            e.printStackTrace();
            return -1;
        }
    }

现在我只是递增计数并想将其写入文件。 我想通过这种方法可以写入文件:

        BufferedWriter out = new BufferedWriter(new FileWriter("text.txt"));
        out.write(count);
        out.close();

但是我如何打开远程文件?我找不到办法。谢谢!

#####编辑:#####
我写了这段代码:

        URL url = new URL("http://myserver.gov/text.txt");
        URLConnection con = url.openConnection();
        con.setDoOutput(true);
        OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream());
        out.write(count);
        out.close();

但它不会将计数写入文件。

2 个答案:

答案 0 :(得分:1)

如果您想使用URLConnection,可以按照此处的说明进行操作:Reading from and Writing to a URLConnection

更新:您还需要一个正在运行的服务器来处理POST请求以更新您的计数器。

答案 1 :(得分:0)

据我说。当你打开远程文件时。首先你必须打开连接而不是读取文件内容。

 HttpClient httpclient = new DefaultHttpClient();
 HttpPost httppost = new HttpPost(url);
 HttpResponse response = httpclient.execute(httppost);
 HttpEntity entity = response.getEntity();

比你可以写文件内容。