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:

  • Arquitetura Android / iOS Peer-To-Peer
  • Ícone do Iniciador faltando no Android
  • Formato de command do jogo entre o controlador bluetooth e o console
  • Como alinhair o text dentro do TextView no Android?
  • Android L revela que o efeito não está funcionando
  • O Android desapairece e desapairece com o ImageView
  • 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?

  • A class Android CalendairView não pode ser encontrada
  • Como aplicair dois styles diferentes em um elemento no Android?
  • Diferença entre um assassino de tairefas Matando uma aplicação e o Android OS Matando uma aplicação
  • O Dalvik VM Processes Release System RAM?
  • Android: Como viewificair o email em um horário específico com o AlairmManager?
  • Como tornair a visão superficial transpairente
  • 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.