Je souhaite enregistrer un fichier dans la mémoire de stockage interne en obtenant le texte saisi depuis EditText. Ensuite, je veux que le même fichier renvoie le texte entré sous forme de chaîne et l'enregistre dans une autre chaîne qui sera utilisée plus tard.
Voici le code:
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);
}
});
}
J'ai inclus des commentaires pour vous aider à analyser plus en détail mes points quant à l'endroit où je veux que les opérations soient effectuées / les variables à utiliser.
Réponses:
J'espère que cela pourrait vous être utile.
Écrire un fichier:
Lire le fichier:
la source
final
bloc comme dans la réponse @SharkAlleyPour ceux qui recherchent une stratégie générale pour lire et écrire une chaîne dans un fichier:
Tout d'abord, obtenez un objet fichier
Vous aurez besoin du chemin de stockage. Pour le stockage interne, utilisez:
Pour le stockage externe (carte SD), utilisez:
Créez ensuite votre objet fichier:
Écrivez une chaîne dans le fichier
Ou avec Google Guava
Lire le fichier dans une chaîne
Ou si vous utilisez Google Guava
Pour être complet, je mentionnerai
qui ne nécessite aucune bibliothèque, mais des benchmarks 50% - 400% plus lents que les autres options (dans divers tests sur mon Nexus 5).
Remarques
Pour chacune de ces stratégies, il vous sera demandé d'attraper une exception IOException.
L'encodage de caractères par défaut sur Android est UTF-8.
Si vous utilisez un stockage externe, vous devrez ajouter à votre manifeste:
ou
L'autorisation d'écriture implique une autorisation de lecture, vous n'avez donc pas besoin des deux.
la source
new File(path + "/my-file-name.txt");
. Cela défie une grande partie du sens deFile
. Utiliseznew File(path, "my-file-name.txt");
plutôt.File
est là pour une raison. Dans votre cas, vous pouvez tout aussi bien sauterFile
et fairenew FileInputStream(path + "/my-file-name.txt");
ce que je ne recommande pas. (Et sipath
contient un tirage/
par exemple?)la source
context.getFilesDir()
. Vous pouvez simplement remplacer les occurrences denew File(context.getFilesDir(), fileName)
par unFile
objet ou uneString
fonction passée à la place defileName
.Juste quelques modifications sur la lecture de la chaîne à partir d'une méthode de fichier pour plus de performances
la source
vérifiez le code ci-dessous.
Lecture à partir d'un fichier dans le système de fichiers.
le code ci-dessous consiste à écrire le fichier dans le système de fichiers interne.
Je crois que ceci vous aidera.
la source
Je suis un peu débutant et j'ai eu du mal à faire fonctionner ça aujourd'hui.
Ci-dessous est la classe avec laquelle je me suis retrouvé. Cela fonctionne, mais je me demandais à quel point ma solution était imparfaite. Quoi qu'il en soit, j'espérais que certains d'entre vous, des gens plus expérimentés, seraient prêts à jeter un œil à ma classe IO et à me donner quelques conseils. À votre santé!
la source
la première chose dont nous avons besoin est les autorisations dans AndroidManifest.xml
donc dans une classe asyncTask Kotlin, nous traitons la création du fichier
Bien sûr, si vous utilisez Android au-dessus d'Api 23, vous devez gérer la demande pour autoriser l'écriture dans la mémoire de l'appareil. Quelque chose comme ça
puis dans une activité, exécutez l'appel.
la source
Kotlin
la source