Путь к файлу с использованием openFileOutput - PullRequest
0 голосов
/ 08 января 2011

Я пытаюсь скопировать файл на устройство Android с помощью Wi-Fi.Я не могу сказать, что создание файла работает, но я нигде не могу его найти ...

Я пытаюсь использовать DDMS на Eclipse, но в папке Data ничего нет ...для того, что я читал по другим темам, файл должен быть расположен в папке данных приложения .. но нет нигде папки ...

Это код

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 ]

5 голосов
/ 08 января 2011

Если он действительно работает, файл будет иметь значение /data/data/your.package.name/. Вы сможете получить доступ к этой папке на эмуляторе только в том случае, если ваш телефон имеет root-права.

0 голосов
/ 15 апреля 2014

если вы хотите сохранить его во внешнем хранилище, доступном для пользователей, используйте этот файл f = новый файл (Environment.getExternalStorageDirectory (), "Folder / name.ending");чтобы создать файл для копирования, также используйте этот путь.Если вы не хотите, чтобы изображение появлялось в Галерее телефона, добавьте файл с именем «.nomedia» в тот же каталог, что и изображение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...