我正在尝试使用HttpURLConnection.getOutputStream()写入我的Web服务器上的文本文件。我在两台不同的服务器上试过这个但没有成功。
我添加了一个FileWriter来测试InputStream,并且该文件是在本地目录上正确创建的,但是在Web服务器目录中没有显示任何内容,即使关闭了所有密码保护。
非常感谢任何帮助。
URL url;
try {
url = new URL("http://www.myWebsite.com/myFile.txt");
HttpURLConnection urlConnection = null;
try {
urlConnection = (HttpURLConnection) url.openConnection();
try {
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
OutputStream in = new BufferedOutputStream(urlConnection.getOutputStream());
InputStream fin1;
try {
fin1 = new FileInputStream(Environment.getExternalStorageDirectory() + "/fileToRead.txt");
FileWriter fWriter = new FileWriter(Environment.getExternalStorageDirectory() + "/fileToWrite.txt");
int data = fin1.read();
while(data != -1) {
fWriter.write(data);
in.write(data);
data = fin1.read();
}
fWriter.flush();
fWriter.close();
fin1.close();
in.flush();
in.close();
} catch (FileNotFoundException e31) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
urlConnection.disconnect();
}
} catch (IOException e4) {
// TODO Auto-generated catch block
e4.printStackTrace();
}
} catch (MalformedURLException e4) {
// TODO Auto-generated catch block
e4.printStackTrace();
}
答案 0 :(得分:1)
您必须在urlConnection上调用getInputStream()以获取输出流以将套接字刷新到远程服务器。
答案 1 :(得分:0)
您正在捕获IOException(在IOException之后)但是没有对它执行任何操作。至少打印堆栈跟踪。
答案 2 :(得分:0)
您也可以使用Apache的Http Client http://hc.apache.org/httpcomponents-client-ga/index.html
比让URLConnection工作容易得多。