2017-01-10 1 views
0

Ich möchte eine Textdatei in meiner Android-App im Paket selbst hinzufügen, so dass niemand sie erneut bearbeiten oder löschen kann. Ich benutze BufferedReader und FileReader Funktionen, um darauf zuzugreifen, aber ich habe Probleme mit dem Pfad der Datei, wie es zeigt meinen Laptop-Pfad, der sich ändern wird, wenn App auf Handys installiert ist. Sie benötigen also eine bessere Option, um den Pfad der Datei anzugeben. Ich habe einen Ordner in src der App erstellt und Android Studio zu Code verwenden.Angeben der benutzerdefinierten Ordneradresse im Android App-Paket

Antwort

0

setzen Sie Ihre Textdatei im Asset-Ordner von Android beziehen diese Antwort für das Beispiel https://stackoverflow.com/a/5771369/5409229

Beispielcode

XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<TextView 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/hello" 
/> 
</LinearLayout> 

Android-Code

package com.javasamples; 

//reading an embedded RAW data file 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.Toast; 
import java.io.*; 

public class FileDemo1 extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
try { 
    PlayWithRawFiles(); 
} catch (IOException e) { 
    Toast.makeText(getApplicationContext(), 
       "Problems: " + e.getMessage(), 1).show(); 
} 
    }// onCreate 

public void PlayWithRawFiles() throws IOException {  
String str=""; 
StringBuffer buf = new StringBuffer();   
InputStream is = this.getResources().openRawResource(R.myfolder.text_file); 
BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
if (is!=null) {       
    while ((str = reader.readLine()) != null) { 
     buf.append(str + "\n"); 
    }    
}  
is.close(); 
Toast.makeText(getBaseContext(), 
     buf.toString(), Toast.LENGTH_LONG).show();    


}// PlayWithSDFiles 

} // FilesDemo4 
+0

@ Chandraman Patil check ich f das ist, was Sie wollen, wenn ja, dann akzeptieren Sie die Antwort –

+1

Dies funktionierte, aber musste nur die Zeile "R.drawable.my_base_data" zu "R.myfolder.text_file" als Drawable-Ordner nicht speichern. TXT-Dateien, so dass ich ein neues Verzeichnis im Ordner res erstellt. Vielen Dank. –

+0

@ chandraman-patil Dann akzeptieren Sie die Antwort –

Verwandte Themen