将数据写入android中的远程文本文件

如何将数据写入android中的远程文本文件。 我能够读取我的文本文件的内容,但我无法写入数据。 我的目标是将文本文件的内容更改为新文件。 我正在使用xampp作为远程服务器,因为我家里没有互联网连接。

这是我的代码:

package com.example.viewtextfromremote; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends Activity implements OnClickListener { TextView display; Button change, refresh; EditText edit; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); display = (TextView) findViewById(R.id.tvDisplay); change = (Button) findViewById(R.id.bChange); refresh = (Button) findViewById(R.id.bRefresh); edit = (EditText) findViewById(R.id.etChange); try { // Create a URL for the desired page URL url = new URL("http://10.0.2.2/name.txt"); // Read all the text returned by the server BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String str = in.readLine(); in.close(); display.setText(str); } catch (IOException e) { display.setText("io"); } change.setOnClickListener(this); refresh.setOnClickListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } public void onClick(View v) { switch (v.getId()) { case R.id.bChange: try { String output = edit.getText().toString(); URL url = new URL("http://10.0.2.2/name.txt"); URLConnection con = url.openConnection(); con.setDoOutput(true); OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream()); out.write(output); out.close(); } catch (Exception e) { // TODO: handle exception } break; case R.id.bRefresh: try { // Create a URL for the desired page URL url = new URL("http://10.0.2.2/name.txt"); // Read all the text returned by the server BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String str = in.readLine(); in.close(); display.setText(str); } catch (IOException e) { display.setText("io"); } break; default: break; } } } 

它是从android访问php文件的代码

  DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost("http://localhost/file.php?value="+output);//output is the variable you used in your program httpClient.execute(httpPost); 

//将上面的代码放在案例中.id.bChange://也不要忘记使用try {} catch {}

php文件

   

//此代码用于将vlue写入文件

你不能写,因为你打开它作为一个URL。 最好的方法是使用php文件来读写数据。 使用android你调用那个php文件。

您的代码似乎对于编写文件是正确的。 您需要一个可以处理POST请求的服务器。

您无法直接写入驻留在远程服务器上的文件。 对于这样的要求,您需要一个称为Web服务的中间级组件。 您需要创建一个Web服务,它将在您的应用程序和服务器之间作为媒介,将数据从服务器传输到服务器。 您需要创建一个Web服务,您的Android应用程序将调用Web服务,它将数据插入到您想要的文本文件中。