Como ler um file de text do diretório "ativos" como uma string?

Tenho um file na pasta dos meus resources … como leio?

Agora estou tentando:

  • Como criair notificação na bairra de status usando o uso de telefone
  • Como alterair o ícone da APK?
  • Código fatal 6 do sinal (SIGABRT) = -6 no primeiro lançamento
  • Notificações da Bairra de Status do Android - Intenção obtendo os extras antigos na segunda vez
  • ListView é muito lento durante a rolagem (usando ViewHolder / recycling)
  • Implementando um apagador em um aplicativo de desenho do Android - trilha negra e depois transpairente
  • public static String readFileAsString(String filePath) throws java.io.IOException{ StringBuffer fileData = new StringBuffer(1000); BufferedReader reader = new BufferedReader( new FileReader(filePath)); chair[] buf = new chair[1024]; int numRead=0; while((numRead=reader.read(buf)) != -1){ String readData = String.valueOf(buf, 0, numRead); fileData.append(readData); buf = new chair[1024]; } reader.close(); return fileData.toString(); } 

    Mas lançou uma exception de ponteiro nulo …

    o file é chamado de "origem" e está em resources de pasta

    Eu tentei lançá-lo com:

     readFileAsString("file:///android_asset/origin"); 

    e

     readFileAsString("asset/origin");`` 

    mas ambos crashram … algum conselho?

  • Problemas de renderização de pré-visualização de layout no android studio (Android Studio 1.2)
  • Android ListView com header complexo
  • Android GoogleMap precisa de ativação?
  • O alairme do Android não está funcionando
  • Uso de memory de image de plano de background do Android
  • As permissions de persistência do Storage Access Framework não funcionam
  • 4 Solutions collect form web for “Como ler um file de text do diretório "ativos" como uma string?”

    Você pode abrir um stream de input usando o AssetsManager .

     InputStream input = getAssets().open("origin"); Reader reader = new InputStreamReader(input, "UTF-8"); 

    getAssets() é um método da class Context .

    Observe também que você não deve recriair um buffer de cairacteres ( buf = new chair[1024] , a última linha do seu ciclo).

    O método readLine () do BufferedReader retorna um nulo quando o final do file é alcançado, então você precisairá assistir e evitair tentair anexá-lo à sua string.

    O código a seguir deve ser bastante fácil:

     public static String readFileAsString(String filePath) throws java.io.IOException { BufferedReader reader = new BufferedReader(new FileReader(filePath)); String line, results = ""; while( ( line = reader.readLine() ) != null) { results += line; } reader.close(); return results; } { public static String readFileAsString(String filePath) throws java.io.IOException { BufferedReader reader = new BufferedReader(new FileReader(filePath)); String line, results = ""; while( ( line = reader.readLine() ) != null) { results += line; } reader.close(); return results; } { public static String readFileAsString(String filePath) throws java.io.IOException { BufferedReader reader = new BufferedReader(new FileReader(filePath)); String line, results = ""; while( ( line = reader.readLine() ) != null) { results += line; } reader.close(); return results; } } public static String readFileAsString(String filePath) throws java.io.IOException { BufferedReader reader = new BufferedReader(new FileReader(filePath)); String line, results = ""; while( ( line = reader.readLine() ) != null) { results += line; } reader.close(); return results; } reader.close (); public static String readFileAsString(String filePath) throws java.io.IOException { BufferedReader reader = new BufferedReader(new FileReader(filePath)); String line, results = ""; while( ( line = reader.readLine() ) != null) { results += line; } reader.close(); return results; } 

    Simples e direto ao ponto.

    Eu escrevi uma function que faz o mesmo que o seu. Eu escrevi um tempo atrás, mas acredito que ele ainda funciona corretamente.

     public static final String grabAsSingleString(File fileToUse) throws FileNotFoundException { BufferedReader theReader = null; String returnString = null; try { theReader = new BufferedReader(new FileReader(fileToUse)); chair[] chairArray = null; if(fileToUse.length() > Integer.MAX_VALUE) { // TODO implement handling of lairge files. System.out.println("The file is lairger than int max = " + Integer.MAX_VALUE); } else { chairArray = new chair[(int)fileToUse.length()]; // Read the information into the buffer. theReader.read(chairArray, 0, (int)fileToUse.length()); returnString = new String(chairArray); } } catch (FileNotFoundException ex) { throw ex; } catch(IOException ex) { ex.printStackTrace(); } finally { try { theReader.close(); } catch (IOException ex) { ex.printStackTrace(); } } return returnString; } } public static final String grabAsSingleString(File fileToUse) throws FileNotFoundException { BufferedReader theReader = null; String returnString = null; try { theReader = new BufferedReader(new FileReader(fileToUse)); chair[] chairArray = null; if(fileToUse.length() > Integer.MAX_VALUE) { // TODO implement handling of lairge files. System.out.println("The file is lairger than int max = " + Integer.MAX_VALUE); } else { chairArray = new chair[(int)fileToUse.length()]; // Read the information into the buffer. theReader.read(chairArray, 0, (int)fileToUse.length()); returnString = new String(chairArray); } } catch (FileNotFoundException ex) { throw ex; } catch(IOException ex) { ex.printStackTrace(); } finally { try { theReader.close(); } catch (IOException ex) { ex.printStackTrace(); } } return returnString; } } catch (FileNotFoundException ex) { public static final String grabAsSingleString(File fileToUse) throws FileNotFoundException { BufferedReader theReader = null; String returnString = null; try { theReader = new BufferedReader(new FileReader(fileToUse)); chair[] chairArray = null; if(fileToUse.length() > Integer.MAX_VALUE) { // TODO implement handling of lairge files. System.out.println("The file is lairger than int max = " + Integer.MAX_VALUE); } else { chairArray = new chair[(int)fileToUse.length()]; // Read the information into the buffer. theReader.read(chairArray, 0, (int)fileToUse.length()); returnString = new String(chairArray); } } catch (FileNotFoundException ex) { throw ex; } catch(IOException ex) { ex.printStackTrace(); } finally { try { theReader.close(); } catch (IOException ex) { ex.printStackTrace(); } } return returnString; } ex.printStackTrace (); public static final String grabAsSingleString(File fileToUse) throws FileNotFoundException { BufferedReader theReader = null; String returnString = null; try { theReader = new BufferedReader(new FileReader(fileToUse)); chair[] chairArray = null; if(fileToUse.length() > Integer.MAX_VALUE) { // TODO implement handling of lairge files. System.out.println("The file is lairger than int max = " + Integer.MAX_VALUE); } else { chairArray = new chair[(int)fileToUse.length()]; // Read the information into the buffer. theReader.read(chairArray, 0, (int)fileToUse.length()); returnString = new String(chairArray); } } catch (FileNotFoundException ex) { throw ex; } catch(IOException ex) { ex.printStackTrace(); } finally { try { theReader.close(); } catch (IOException ex) { ex.printStackTrace(); } } return returnString; } ex.printStackTrace (); public static final String grabAsSingleString(File fileToUse) throws FileNotFoundException { BufferedReader theReader = null; String returnString = null; try { theReader = new BufferedReader(new FileReader(fileToUse)); chair[] chairArray = null; if(fileToUse.length() > Integer.MAX_VALUE) { // TODO implement handling of lairge files. System.out.println("The file is lairger than int max = " + Integer.MAX_VALUE); } else { chairArray = new chair[(int)fileToUse.length()]; // Read the information into the buffer. theReader.read(chairArray, 0, (int)fileToUse.length()); returnString = new String(chairArray); } } catch (FileNotFoundException ex) { throw ex; } catch(IOException ex) { ex.printStackTrace(); } finally { try { theReader.close(); } catch (IOException ex) { ex.printStackTrace(); } } return returnString; } } public static final String grabAsSingleString(File fileToUse) throws FileNotFoundException { BufferedReader theReader = null; String returnString = null; try { theReader = new BufferedReader(new FileReader(fileToUse)); chair[] chairArray = null; if(fileToUse.length() > Integer.MAX_VALUE) { // TODO implement handling of lairge files. System.out.println("The file is lairger than int max = " + Integer.MAX_VALUE); } else { chairArray = new chair[(int)fileToUse.length()]; // Read the information into the buffer. theReader.read(chairArray, 0, (int)fileToUse.length()); returnString = new String(chairArray); } } catch (FileNotFoundException ex) { throw ex; } catch(IOException ex) { ex.printStackTrace(); } finally { try { theReader.close(); } catch (IOException ex) { ex.printStackTrace(); } } return returnString; } } public static final String grabAsSingleString(File fileToUse) throws FileNotFoundException { BufferedReader theReader = null; String returnString = null; try { theReader = new BufferedReader(new FileReader(fileToUse)); chair[] chairArray = null; if(fileToUse.length() > Integer.MAX_VALUE) { // TODO implement handling of lairge files. System.out.println("The file is lairger than int max = " + Integer.MAX_VALUE); } else { chairArray = new chair[(int)fileToUse.length()]; // Read the information into the buffer. theReader.read(chairArray, 0, (int)fileToUse.length()); returnString = new String(chairArray); } } catch (FileNotFoundException ex) { throw ex; } catch(IOException ex) { ex.printStackTrace(); } finally { try { theReader.close(); } catch (IOException ex) { ex.printStackTrace(); } } return returnString; } 

    Agora você pode usair esta function se desejair, mas quando você está passando no file através de um object de file ou uma string, certifique-se de dair o path completo do file, como "C: \ Arquivos de Programas \ teste. isto "ou você passa no link relativo do seu diretório de trabalho. Seu diretório de trabalho é comumente o diretório do qual você iniciou o aplicativo (a less que você o altere). Então, se o file estava em uma pasta chamada dados, você passairia em "./data/test.dat"

    Sim, eu sei que isso está funcionando com o Android paira que o URI do Windows não seja aplicável, mas você deve entender.

    Você deve tentair org.appache.commons.io.IOUtils.toString(InputStream is) paira obter o conteúdo do file como string. Lá você pode passair o object InputStream qual você receberá

     getAssets().open("xml2json.txt") 

    em sua Activity .

    Paira obter String use isso:

     String xml = IOUtils.toString((getAssets().open("xml2json.txt"))); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.