Quero salvar um arquivo no armazenamento interno, obtendo o texto inserido no EditText. Então, eu quero que o mesmo arquivo retorne o texto inserido no formulário String e salve-o em outra String que será usada posteriormente.
Aqui está o código:
package com.omm.easybalancerecharge;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.TelephonyManager;
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 {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText num = (EditText) findViewById(R.id.sNum);
Button ch = (Button) findViewById(R.id.rButton);
TelephonyManager operator = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String opname = operator.getNetworkOperatorName();
TextView status = (TextView) findViewById(R.id.setStatus);
final EditText ID = (EditText) findViewById(R.id.IQID);
Button save = (Button) findViewById(R.id.sButton);
final String myID = ""; //When Reading The File Back, I Need To Store It In This String For Later Use
save.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Get Text From EditText "ID" And Save It To Internal Memory
}
});
if (opname.contentEquals("zain SA")) {
status.setText("Your Network Is: " + opname);
} else {
status.setText("No Network");
}
ch.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Read From The Saved File Here And Append It To String "myID"
String hash = Uri.encode("#");
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:*141*" + /*Use The String With Data Retrieved Here*/ num.getText()
+ hash));
startActivity(intent);
}
});
}
Incluí comentários para ajudá-lo a analisar melhor meus pontos sobre onde eu quero que as operações sejam feitas / variáveis sejam usadas.
Respostas:
Espero que isso possa ser útil para você.
Gravar arquivo:
Ler arquivo:
fonte
final
bloco como em resposta @SharkAlleyPara aqueles que procuram uma estratégia geral para ler e escrever uma string em um arquivo:
Primeiro, obtenha um objeto de arquivo
Você precisará do caminho de armazenamento. Para o armazenamento interno, use:
Para o armazenamento externo (cartão SD), use:
Em seguida, crie seu objeto de arquivo:
Escreva uma string no arquivo
Ou com o Google Guava
Leia o arquivo em uma string
Ou se você estiver usando o Google Guava
Para completar, vou mencionar
que não requer bibliotecas, mas avalia 50% a 400% mais lento que as outras opções (em vários testes no meu Nexus 5).
Notas
Para cada uma dessas estratégias, você será solicitado a capturar uma IOException.
A codificação de caracteres padrão no Android é UTF-8.
Se você estiver usando armazenamento externo, precisará adicionar ao seu manifesto:
ou
A permissão de gravação implica permissão de leitura, portanto você não precisa dos dois.
fonte
new File(path + "/my-file-name.txt");
. Isso desafia muito o senso deFile
. Use emnew File(path, "my-file-name.txt");
vez disso.File
está lá por uma razão. No seu caso, você também pode pularFile
e fazernew FileInputStream(path + "/my-file-name.txt");
, o que eu não recomendo. (O que sepath
contém uma fuga/
por exemplo?)fonte
context.getFilesDir()
. Você pode apenas substituir ocorrências denew File(context.getFilesDir(), fileName)
por umFile
objeto ou umString
passado para funcionar em vez defileName
.Apenas algumas modificações na leitura de string de um método de arquivo para obter mais desempenho
fonte
verifique o código abaixo.
Lendo de um arquivo no sistema de arquivos.
O código abaixo é gravar o arquivo no sistema de arquivos interno.
Eu acho que isso vai te ajudar.
fonte
Sou um pouco iniciante e luto para que isso funcione hoje.
Abaixo está a classe que eu acabei. Funciona, mas eu queria saber como minha solução é imperfeita. De qualquer forma, eu esperava que alguns de vocês, mais experientes, estivessem dispostos a dar uma olhada na minha aula de IO e me dar algumas dicas. Felicidades!
fonte
a primeira coisa que precisamos é das permissões no AndroidManifest.xml
portanto, em uma classe asyncTask Kotlin, tratamos a criação do arquivo
Obviamente, se você estiver usando o Android acima da Api 23, deverá processar a solicitação para permitir a gravação na memória do dispositivo. Algo assim
em uma atividade, execute a chamada.
fonte
Kotlin
fonte