使用openFileOutput的文件路径

时间:2011-01-08 20:38:14

标签: java android file

我正在尝试使用Wifi将文件复制到Android设备。我无法告诉文件的创建是否有效,但我无法在任何地方找到它......

我尝试在Eclipse上使用DDMS,但Data文件夹上没有任何内容...对于我在其他主题上阅读的内容,该文件应该位于App的数据文件夹中..但是没有文件夹任何地方...

这是代码

package com.ejemplo.cliente;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;


import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

 public class ClienteSocket extends Activity {

 Socket socket;
 String IP = "192.168.1.101";
 Integer Puerto = 4444;
 TextView Mensaje;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Mensaje = (TextView)findViewById(R.id.Mensaje);

    try {
         socket = new Socket(IP,Puerto);
         Mensaje.setText("Conectado");
         InputStream input = socket.getInputStream();
         BufferedReader inReader = new BufferedReader(new                  InputStreamReader(socket.getInputStream()));
        BufferedWriter outReader = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        String filename = inReader.readLine();

      if ( !filename.equals("") ){

          outReader.write("READY\n");
          outReader.flush();
          Mensaje.setText("Request Acepted");

                FileOutputStream wr = openFileOutput(filename,MODE_WORLD_READABLE);
                OutputStreamWriter osw = new OutputStreamWriter(wr); 


          byte[] buffer = new byte[socket.getReceiveBufferSize()];

          int bytesReceived = 0;

          while((bytesReceived = input.read(buffer))>0)
          {

             osw.write(bytesReceived);
             Toast.makeText(this, "Transfering", Toast.LENGTH_SHORT).show();
          }

          osw.flush();
          osw.close();
          Mensaje.setText("File Received");
      }

    } catch (UnknownHostException e) {
      Mensaje.setText("error 1" + e.getMessage());
    } catch (IOException e) {
      Mensaje.setText("error 2" + e.getMessage());
   }

   }
}

2 个答案:

答案 0 :(得分:5)

如果它确实有效,则该文件将位于/data/data/your.package.name/。除非您的手机是root用户,否则您只能在模拟器上访问该文件夹。

答案 1 :(得分:0)

如果要将其保存在 - 对于用户可访问 - 外部存储中,请使用此选项     文件f =新文件(Environment.getExternalStorageDirectory()," Folder / name.ending"); 创建文件 复制,也使用该路径。 如果您不希望图片显示在手机的图库中,请添加名为" .nomedia"的文件。到与图像相同的目录