阅读文本文件(奇怪的符号)JAVA

时间:2014-08-26 13:55:12

标签: java android

我试图读取从arduino服务器下载的txt文件。我可以下载文件并将其保存在内部存储器上,但是当我想阅读它时,我会看到奇怪的符号,我看不到所有保存的文本,只有6到7个字符。我不知道会发生什么。

public void downloadFile (String fileDownloadPath, String saveFilePath){

    try{
    File SaveFile = new File(saveFilePath);


    URL u= new URL ("http://169.254.0.1:44300/169.254.0.1");
    URLConnection con=u.openConnection();
    int lengthofContent=con.getContentLength();

    DataInputStream DIStream = new DataInputStream(u.openStream());

    byte [] buffer = new byte[2000];

    DIStream.read(buffer);
    DIStream.close();

    DataOutputStream DOStream = new DataOutputStream(new FileOutputStream(SaveFile));
    DOStream.write(buffer);
    DOStream.flush();
    DOStream.close();
    System.out.println ("o");

    hideProgressIndicator();

}   catch (FileNotFoundException e){
    hideProgressIndicator();

}
    catch (IOException e){
    hideProgressIndicator();

}
 catch (Exception e){

}

}

当我想阅读它时,我使用它:

private String readFile() {
    String result = "", line;
    try
    {


    BufferedReader br = new BufferedReader((new FileReader("/data/data/com.example.sensolog/files/LOL.txt")));

    while((line = br.readLine()) != null)
    {
       result += line + "\n";

    }


    System.out.println (result);
    br.close();
    }
    catch(Exception e)
   {
   e.printStackTrace();
   }

   return result ;

}

结果如下:

08-26 15:38:11.498:I / System.out(30593):SERVIDORn����������������������������...

2 个答案:

答案 0 :(得分:1)

在阅读时定义文件的编码,这是一个例子:

BufferedReader br = new BufferedReader(( new FileReader("/data/data/com.example.sensolog/files/LOL.txt"),"ISO-8859-1"));

答案 1 :(得分:0)

您正在下载并将文件存储为DataOutputStream - 只能由DataInputStream再次阅读 - 这是您的意图吗?我会将文件保存为一个简单的文本文件,除非你绝对必须保存为二进制类型?

有关DataOutputStream的更多信息:

  

包装现有的OutputStream并将big-endian类型的数据写入其中。通常,此流可以由DataInputStream读入。可写入的类型包括字节,16位短,32位int,32位浮点数,64位长,64位双精度,字节串和MUTF-8编码字符串。来自:http://developer.android.com/reference/java/io/DataOutputStream.html