Actually, it can read fine to toCharArray, since that just returns a
char array.  However, since you were basing it off an empty string,
the array length was 0, and so it wasn't reading any bytes :)

David wrote:
> I found the problem. An InputStreamReader will not read() to a
> String.toCharArray(). You have to use a char[]. Here is my new
> function for reference:
>
>       public String loadFile(String filename)
>       {
>               try
>               {
>                       FileInputStream fis = openFileInput(filename);
>                       InputStreamReader in = new InputStreamReader(fis, 
> "utf-8");
>                       File file = new 
> File("/data/data/com.android.webbed/files/" +
> filename);
>                       char[] buff = new char[(int) file.length()];
>                       in.read(buff);
>                       String contents = new String(buff);
>                       return contents;
>               }
>               catch(FileNotFoundException e)
>               {
>                       e.printStackTrace();
>                       return "File Not Found";
>               } catch (IOException e) {
>                       e.printStackTrace();
>                       return "IO Exception";
>               }
>
>       }
>
> On Feb 11, 10:01 pm, David <godsinven...@gmail.com> wrote:
>   
>> Unfortunately, that didn't solve my problem. Any other help?
>>
>> P.S. I tried that tutorial in normal java and it worked, but not in
>> android.
>>
>> On Feb 11, 5:51 pm, Mark Murphy <mmur...@commonsware.com> wrote:
>>
>>     
>>> David wrote:
>>>       
>>>> Hey guys, I need some help with reading the contents of a file. I have
>>>> a plaintext file called 'test' in my app's files/ directory. I have
>>>> this code to read it:
>>>>         
>>>>         public String loadFile(String filename)
>>>>         {
>>>>                 try
>>>>                 {
>>>>                         FileInputStream fis = openFileInput(filename);
>>>>                         InputStreamReader in = new InputStreamReader
>>>> (fis);
>>>>                         String contents = "";
>>>>                         in.read(contents.toCharArray());
>>>>                         return contents;
>>>>                 }
>>>>                 catch(FileNotFoundException e)
>>>>                 {
>>>>                         e.printStackTrace();
>>>>                         return null;
>>>>                 } catch (IOException e) {
>>>>                         e.printStackTrace();
>>>>                         return null;
>>>>                 }
>>>>         }
>>>>         
>>>> I pass the filename to the function like this:
>>>>         String contents = "";
>>>>         contents = loadFile('test');
>>>>         
>>>> But every time it returns nothing. I have tested it and it doesn't go
>>>> into one of the catch es, but it apparently reads nothing from the
>>>> file. What am I doing wrong?
>>>>         
>>> Phooey. Let's try that again...
>>>       
>>> Try this example:
>>>       
>>> http://www.exampledepot.com/egs/java.io/ReadLinesFromFile.html
>>>       
>>> Except that the first line will need to use an InputStreamReader on the
>>> InputStream you get from openFileInput().
>>>       
>>> --
>>> Mark Murphy (a Commons Guy)http://commonsware.com
>>> _The Busy Coder's Guide to Android Development_ Version 2.0 Published!
>>>       
> >   


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to