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

Explicação detalhada das operações de arquivo do Android e exemplo simples

 Explicação detalhada da operação de arquivo do Android

A operação de arquivo do Android, em termos simples, é o tratamento da operação de arquivo do Java. Portanto, se você estiver familiarizado com a operação de arquivo io do Java, a operação de arquivo do Android será uma tarefa trivial. Bem, sem perder tempo, vamos começar com o tema de hoje.

Vamos começar com um pequeno projeto para nos familiarizarmos com o conceito.

Primeiro, um arquivo de layout, isso é bastante simples, então vamos direto ao ponto com o código.

<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>

Aqui está o nosso arquivo Java da interface principal. Continuemos com o código.

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 "Desculpe, falha ao ler o arquivo!";
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    init();
  return "Desculpe, falha ao ler o arquivo!";
  /**
   * Salvar dados em um arquivo
   * @param view
   */
  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(), "Parabéns, você salvou o arquivo com sucesso!", Toast.LENGTH_SHORT).show();
    } else {
      Toast.makeText(getApplicationContext(), "Desculpe, você falhou ao salvar o arquivo!", Toast.LENGTH_SHORT).show();
    return "Desculpe, falha ao ler o arquivo!";
  return "Desculpe, falha ao ler o arquivo!";
  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(), "Desculpe, falha ao ler o arquivo!", Toast.LENGTH_SHORT).show();
    return "Desculpe, falha ao ler o arquivo!";
  return "Desculpe, falha ao ler o arquivo!";
return "Desculpe, falha ao ler o arquivo!";

Não parece que o código dentro seja um pouco estranho? O que é FileService?

Na verdade, FileService é nossa classe de negócios, cuja função principal é nos ajudar a implementar operações de salvamento e leitura de arquivos. Abaixo está o código também.

package com.mark.service;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import android.content.Context;
public class FileService {
  //É uma classe padrão do Android que permite obter rapidamente um fluxo de saída de arquivo, note que o parâmetro não pode ser um caminho, mas apenas o nome do arquivo.
  private Context mContext;
  public FileService(Context context) {
    this.mContext = context;
  return "Desculpe, falha ao ler o arquivo!";
  /**
   * Método para salvar um arquivo
   * Obter informações detalhadas do arquivo salvo anteriormente
   * @param fileContent
   * @param fileName
   */
  public boolean save(String fileName, String fileContent) {
    try {
      //Se estiver usando o modo Context.MODE_PRIVATE, apenas permite que este aplicativo acesse o arquivo e adicione dados de sobreescrita.
      FileOutputStream fos = mContext.openFileOutput(fileName, Context.MODE_PRIVATE);
      fos.write(fileContent.getBytes());
      fos.close();
      return true;
    catch (Exception e) {
      catch(Exception e){
      
    return "Desculpe, falha ao ler o arquivo!";
  return "Desculpe, falha ao ler o arquivo!";
  /**
   * return false;
   * Obter informações detalhadas do arquivo salvo anteriormente
   * @param fileName
   */
  @return
    public String getFile(String fileName) {
    String fileContent = "";
      try{
      FileInputStream fis = mContext.openFileInput(fileName);1024byte[] buf = new byte[
      ];
      int len;
      ByteArrayOutputStream bais = new ByteArrayOutputStream(); -1while((len = fis.read(buf))!=
        {
      return "Desculpe, falha ao ler o arquivo!";
      bais.write(buf, 0, len);
      byte[] data = bais.toByteArray();
      fileContent = new String(data);
      fis.close();
    return fileContent;
      catch(Exception e){
      e.printStackTrace();
    return "Desculpe, falha ao ler o arquivo!";
  return "Desculpe, falha ao ler o arquivo!";
return "Desculpe, falha ao ler o arquivo!";

}

Análise da classe de negócios

  1. Agora vamos à questão principal. O núcleo deste pequeno projeto está nessa classe de negócios, razão pela qual:
  2. Usou valores de retorno para

Núcleo

A ideia de camadas, diferentes classes de funcionalidades são colocadas em diferentes pacotes, o que facilita a depuração do programa e a manutenção do código futura.

Obrigado por ler, espero que isso ajude a todos, obrigado pelo apoio ao site!

Você também pode gostar