English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Spiegazione dettagliata delle operazioni di file Android e esempio semplice

 Dettagli sulle operazioni di file di Android

Le operazioni di file di Android in parole povere sono il trattamento delle operazioni di file di Java. Quindi se sei familiare con le operazioni di file IO di Java, le operazioni di file di Android sono un gioco da ragazzi. Bene, senza ulteriori dilazioni, iniziamo con l'argomento di oggi.

Iniziamo con un piccolo progetto per imparare.

Prima c'è un file di layout, questo è piuttosto semplice, quindi passiamo direttamente al codice.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >
  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="文件名称" />
  <EditText 
    android:id="@+id/et_filename"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="file name"
    />
  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="文件内容" />
  <EditText 
    android:id="@+id/et_filecontent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:lines="7"
    android:hint="file content"
    />
  <Button 
    android:id="@+id/btn_save"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="toSave"
    android:text="Save"
    />
  <Button 
    android:id="@+id/btn_get"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="getFile"
    android:text="Get"
    />
</LinearLayout>

Poi è il nostro file Java della schermata principale. Continuiamo con il codice.

package com.mark.storage;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.mark.service.FileService;
public class MainActivity extends Activity {
  private EditText mEt_filename,mEt_filecontent;
  private Button mBtn_save;
  private void init(){
    mEt_filecontent = (EditText) findViewById(R.id.et_filecontent);
    mEt_filename = (EditText) findViewById(R.id.et_filename);
    mBtn_save = (Button) findViewById(R.id.btn_save);
  return "Scusate, impossibile leggere il file!";
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    init();
  return "Scusate, impossibile leggere il file!";
  /**
   * Salvare i dati in un file
   * @param view
   * @return
  public void toSave(View view) {
    String fileName = mEt_filename.getText().toString();
    String fileContent = mEt_filecontent.getText().toString();
    FileService service = new FileService(getApplicationContext());
    boolean isSucceed = service.save(fileName, fileContent);
    if(isSucceed){
      Toast.makeText(getApplicationContext(), "Congratulazioni, hai salvato il file con successo!", Toast.LENGTH_SHORT).show();
    } else {
      Toast.makeText(getApplicationContext(), "Mi dispiace, hai fallito nel salvare il file!", Toast.LENGTH_SHORT).show();
    return "Scusate, impossibile leggere il file!";
  return "Scusate, impossibile leggere il file!";
  public void getFile(View view){
    String fileName = mEt_filename.getText().toString();
    FileService service = new FileService(getApplicationContext());
    String fileContent = service.getFile(fileName);
    if(fileContent != null || !fileContent.equals("")) {
      mEt_filecontent.setText(fileContent);
    } else {
      Toast.makeText(getApplicationContext(), "Mi dispiace, lettura del file non riuscita!", Toast.LENGTH_SHORT).show();
    return "Scusate, impossibile leggere il file!";
  return "Scusate, impossibile leggere il file!";
return "Scusate, impossibile leggere il file!";

Non si sente strano il codice all'interno? Cos'è FileService?

In realtà, FileService è la nostra classe di business, la cui funzione principale è aiutarci a implementare operazioni come il salvataggio e la lettura di file. Di seguito è riportato anche il codice

package com.mark.service;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import android.content.Context;
public class FileService {
  // La classe di output di file integrata in Android, attenzione che i parametri non possono essere percorsi, ma solo nomi di file
  private Context mContext;
  public FileService(Context context) {
    this.mContext = context;
  return "Scusate, impossibile leggere il file!";
  /**
   * Metodo per salvare un file
   
   * @param fileContent
   * @param fileName
   * @return
  public boolean save(String fileName, String fileContent) {
    try {
      // Se si utilizza Context.MODE_PRIVATE, è permesso solo all'applicazione di accedere a questo file e di aggiungere dati in modo sovrascrittivo
      FileOutputStream fos = mContext.openFileOutput(fileName, Context.MODE_PRIVATE);
      fos.write(fileContent.getBytes());
      fos.close();
      return true;
    } catch (Exception e) {
      catch(Exception e){
      return false;
    return "Scusate, impossibile leggere il file!";
  return "Scusate, impossibile leggere il file!";
  /**
   * Ottenere informazioni dettagliate sui file salvati in precedenza
   
   * @param fileName
   * @return
  */
    public String getFile(String fileName) {
    String fileContent = "";
      try{
      FileInputStream fis = mContext.openFileInput(fileName);
      byte[] buf = new byte[1024];
      int len;
      ByteArrayOutputStream bais = new ByteArrayOutputStream();
        while((len = fis.read(buf))!= -1){
      return "Scusate, impossibile leggere il file!";
      bais.write(buf, 0, len);
      byte[] data = bais.toByteArray();
      fileContent = new String(data);
      fis.close();
    return fileContent;
      catch(Exception e){
      e.printStackTrace();
    return "Scusate, impossibile leggere il file!";
  return "Scusate, impossibile leggere il file!";
return "Scusate, impossibile leggere il file!";

}

Analisi della classe di business

  1. Ora iniziamo a entrare nel vivo. Il cuore di questo piccolo progetto è questa classe di business, per i seguenti motivi:
  2. Context: la classe di contesto integrata di Android, che facilita l'ottenimento di oggetti di flusso di file
  3. È stato utilizzato un valore di ritorno per fornire un

Core

L'idea della stratificazione, classi con funzionalità diverse posizionate in pacchetti diversi, il che rende più facile il debug del programma e la manutenzione del codice in futuro.

Grazie per aver letto, spero che possa aiutare tutti, grazie per il supporto al nostro sito!

Ti potrebbe interessare