我在服务器上打开一个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();
但它不会将计数写入文件。
答案 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();
比你可以写文件内容。