2013-04-30 166 views
0

我有下面的代码,我知道它在Java中工作。我现在正在尝试做和Android应用程序中的等价物。操作非常简单:我需要在类中使用方法(在同一个工作区中),我首先需要从我存储在/res/raw中的文本文件中删除这些行。android - 从文本文件逐行读取

基本上我需要调用驻留在Android Activity类的Java类中的此方法。这怎么可能?

活动课片段(CaptureActivity.java):

setContentView(R.layout.orientation); 
         try { 
          SentenceGenerator sentenceGenerator = new SentenceGenerator(); 
          ArrayList<String> firstState = stateGenerator.getState(resultOutput, result, result); 
          String viewPoint = firstState.get(0); 
          String object = firstState.get(1); 
          String subject = firstState.get(2); 
          Thing subjectInfo = new Thing(); 
          if(resultOutput.equals("Sliema")){ 
           Sliema sliema = new Sliema(); 
           subjectInfo = sliema.getInfo(viewPoint, object, subject); 
          } 
          try { 
           String s = sentenceGenerator.generateSentence("start.txt", "middle.txt", "end.txt", resultOutput, viewPoint, object, subject, subjectInfo.type, subjectInfo.name, subjectInfo.properties, false); 
           TextView instructionTextView = (TextView) findViewById(R.id.instructionTextView); 
           instructionTextView.setText(s); 

          } catch (Exception e) { 
          } 
         } catch (ClassNotFoundException e) { 
         } 

的Java类片段(SentenceGenerator.java):

public static ArrayList<String> getLines(String filename) throws Exception { 
    ArrayList<String> lines = new ArrayList<String>(); 
    FileInputStream fstream = new FileInputStream(filename); 

    BufferedReader br = new BufferedReader(new InputStreamReader(fstream)); 
    String strLine; 
    while ((strLine = br.readLine()) != null) { 
     lines.add(strLine); 
    } 
    in.close(); 
    return lines; 
} 

感谢您的帮助提前!

+0

显然文本文件没有正确访问。我可以使用此方法访问存储在/ res/raw中的.txt文件吗? – k0rtin 2013-04-30 23:52:30

回答

1

变化如下代码:

 BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
String strLine; 
while ((strLine = br.readLine()) != null) { 
    lines.add(strLine); 
} 

Scanner br = new Scanner(new InputStreamReader(in)); 
while (br.hasNext()) { 
    String strLine = br.nextLine(); 
    lines.add(strLine); 
} 

这应该工作。 希望这有助于!

+0

谢谢user2277872的帮助。我似乎发现了一个我目前无法解决的问题(请参阅原文中的评论)。一旦我克服了这个问题,我会告诉你它是否有效! – k0rtin 2013-04-30 23:53:58

+0

没问题,但没问题:) – user2277872 2013-05-01 01:24:43