Tengo un archivo words.txt
que he colocado en mi carpeta res/raw. Las palabras en el archivo están separadas por espacio. Me está costando escribir el código Android/Java para leer el archivo palabra por palabra.Lectura del archivo de texto sin formato de Android
Respuesta
Leer de res/raw
carpeta a la cadena
InputStream inputStream = getResources().openRawResource(R.raw.yourtextfile);
BufferedReader bufferedReader= new BufferedReader(new InputStreamReader(inputStream));
String eachline = bufferedReader.readLine();
while (eachline != null) {
// `the words in the file are separated by space`, so to get each words
String[] words = eachline.split(" ");
eachline = bufferedReader.readLine();
}
para que las palabras del archivo de la carpeta prima tratan con el enfoque siguiente
leer los datos de la carpeta cruda usando getResources().openRawResource(R.raw.song);
continuación, obtener el flujo de entrada los datos en una matriz de bytes dividen los datos con espacio.
utilizar el siguiente código
InputStream is =getResources().openRawResource(R.raw.song);
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
byte[] myData = baf.toByteArray();
String dataInString = new String(myData);
String[] words = dataInString.split(" ");
Gracias Deepak
-1 para la lectura de byte a byte ... que he visto este patrón: 'while ((= corriente bis .read())! = -1) {... 'en muchas respuestas ... chico que publicó (no tú) primero debe ser robado – Selvin
Lo más sencillo es utilizar un Scanner.
Scanner s = new Scanner(getResources().openRawResource(R.raw.text_file));
try {
while (s.hasNext()) {
String word = s.next();
// ....
}
} finally {
s.close();
}
El delimitador predeterminado es el espacio en blanco (incluido el espacio). Si desea que solo se active en el espacio, use s.useDelimiter(" ");
después de crearlo.
Usando este código con un archivo de texto que tiene solo unas pocas palabras, funciona solo multa. Pero cuando uso el archivo que tiene unas 100.000 palabras, el emulador deja de responder. ¿Por qué piensas? –
Bueno ... Esa es una desventaja de esta solución ya que 'Scanner' creará nuevas cadenas para cada llamada a' next() 'y eso podría ser costoso. Pero eso es realmente ** otro problema y debería hacerse en una nueva pregunta ** (* Usaría la solución @Sunil Kumar Sahoo si tiene archivos tan grandes ya que el método 'split (..)' no crea cadenas nuevas, pero reutiliza la cadena subyacente *). – dacwe
Tuve la misma pregunta y, aunque las respuestas anteriores son probablemente correctas, no pude conseguir que funcionen correctamente. que era prácticamente seguro un error del operador y la ignorancia de mi parte - pero por si acaso alguien quiere ver cómo - un n00b - finalmente lo hice, aquí está mi solución:
// this is just the click handler for a button...
public void loadStatesHandler(View v) {
try {
String states = getStringFromRaw(this);
readOutput.setText(states);
}
catch(Throwable t) {
t.printStackTrace();
}
}
private String getStringFromRaw(Context c) throws IOException {
Resources r = c.getResources();
InputStream is = r.openRawResource(R.raw.states);
String statesText = convertStreamToString(is);
is.close();
return statesText;
}
private String convertStreamToString(InputStream is) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i = is.read();
while (i != -1) {
baos.write(i);
i = is.read();
}
return baos.toString();
}
No estoy exactamente seguro de por qué esto funcionó para mí cuando lo anterior no lo hizo, ya que no parece fundamentalmente diferente, pero como dije, fue probablemente un error del operador de mi parte.
También me gustaría escuchar cualquier opinión sobre la eficacia (o la falta de ella) de este método frente al que Sunil Kumar Sahoo sugirió ... –
//put your text file to raw folder, raw folder must be in resource folder.
private TextView tv;
private Button btn;
btn = (Button)findViewById(R.id.btn_json);
tv = (TextView)findViewById(R.id.tv_text);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SimpleText();
}
});
private void SimpleText(){
try {
InputStream is = this.getResources().openRawResource(R.raw.simpletext);
byte[] buffer = new byte[is.available()];
while (is.read(buffer) != -1);
String jsontext = new String(buffer);
tv.setText(jsontext);
} catch (Exception e) {
Log.e(TAG, ""+e.toString());
}
}
- 1. Archivo de texto sin formato de lectura de Android
- 2. Lectura de texto con formato utilizando Python
- 3. Lectura del formato ePub
- 4. Lectura de archivos de texto del servidor en Android
- 5. pitón archivo de texto de lectura
- 6. RandomAccessFile en el archivo de recursos sin formato de Android
- 7. AS3/AIR - ¿Crear un archivo de texto sin formato?
- 8. rendimiento de lectura del archivo de texto C++
- 9. Fortran formato de archivo sin formato
- 10. La lectura de un archivo de texto o un archivo XML en Java Android
- 11. cómo crear un archivo sin formato de gestos de Android
- 12. Exportar el registro en formato de texto sin formato
- 13. Lectura de nombres de actividades del archivo apk en Android
- 14. lectura del texto Unicode de los activos
- 15. La lectura de un archivo de texto con jQuery
- 16. Lectura de activos o archivos sin procesar o de recursos como un objeto Archivo en Android
- 17. Obtenga texto sin formato de XMLHttpRequest responseText
- 18. Bases de datos versus texto sin formato
- 19. Lectura de bytes sin formato desde un puerto en serie
- 20. Fundamentos del formato de correo electrónico (enlaces en mensajes de texto sin formato)
- 21. SampleSyncAdapter almacenar contraseña texto sin formato?
- 22. Lectura de parámetros del archivo externo - C#
- 23. Obtenga texto sin formato del HTML en .NET
- 24. Obtener texto sin formato de un texto RTF
- 25. pantalla vp php como texto sin formato
- 26. ¿Reducción a texto sin formato en Ruby?
- 27. Lectura del archivo xml de un recurso
- 28. use xsl para enviar texto sin formato
- 29. Enviando boletines HTML con texto sin formato
- 30. NSData volver al texto sin formato NSString
me encontré mejor solución aquí: http://stackoverflow.com/a/5675934/336990 – CoDe