public String getFromAssets(String fileName){ 
        try { 
         InputStreamReader inputReader = new InputStreamReader(getResources().getAssets().open(fileName) ); 
            BufferedReader bufReader = new BufferedReader(inputReader);
            String line="";
            String Result="";
            while((line = bufReader.readLine()) != null){
                Result += line;
             return Result;
            }
        } catch (Exception e) { 
          e.printStackTrace(); 
        }
    } 提示要返回一个字符串类型的结果This method must return a result of type String我上面不是有返回值吗?

解决方案 »

  1.   

    要是 出现异常 会直接跳转到catch块,你在看你的return 语句,就不会执行了!所以最后还要加一句return
      

  2.   

    public String getFromAssets(String fileName){ 
      try { 
      InputStreamReader inputReader = new InputStreamReader(getResources().getAssets().open(fileName) ); 
      BufferedReader bufReader = new BufferedReader(inputReader);
      String line="";
      String Result="";
      while((line = bufReader.readLine()) != null){
      Result += line;
      return Result;
      }
      } catch (Exception e) { 
      e.printStackTrace(); 
      }
      } 
    循环一次就return?那还要while干嘛?
    public String getFromAssets(String fileName){ 
    String Result="";
      try { 
      InputStreamReader inputReader = new InputStreamReader(getResources().getAssets().open(fileName) ); 
      BufferedReader bufReader = new BufferedReader(inputReader);
      String line="";
      while((line = bufReader.readLine()) != null){
      Result += line;
      
      }
      } catch (Exception e) { 
      e.printStackTrace(); 
      }
    return Result;
      } 
    这样就可以了
      

  3.   

    恩~我在最后加了return "程序出错";就行了
    --------------------------------------------我希望屏幕显示的是我获取Assets里资源的字符串时
    String txt;
    String book;
    book = "book.txt";
    txt = getFromAssets(book);
    setContentView(txt); '这里为什么不可以呢?
      

  4.   

    可以在getFromAssets 最后一行加上 return "";setContentView的参数需要是layout的id ,如 R.layout.main
      

  5.   

    while((line = bufReader.readLine()) != null){
      Result += line;
      //return Result;移下一点
      }
    return Result;
      

  6.   

    是的,我如何让他显示txt = getFromAssets(book);这个txt的值呢?
      

  7.   

    在main.xml文件里面给TextView加个Id
    android:id="@+id/txt"
    然后
    TextView text = findViewById(R.id.txt);
    setContentView(R.layout.main);
    txt.setText(txt);OK 行了
      

  8.   


    TextView text = (TextView)findViewById(R.id.txt);
    setContentView(R.layout.main);
    text.setText(txt);
      

  9.   

    确实,我用了这个,可能是我获取book.txt文本时时间过长,导致响应不过来
    这样直接读取txt是不是会存在性能问题?
      

  10.   

    那就用handler或者AsyncTask异步来处理,具体用法很多资料上有
    总之耗时操作就用多线程