2013-04-30 3 views
0

Java에서 작동하는 것으로 알고있는 다음 코드가 있습니다. 나는 지금 동등한 안드로이드 응용 프로그램을하려고 노력하고있다. 작업은 매우 간단합니다 : 먼저 동일한 작업 공간에있는 클래스의 메서드를 사용해야합니다.이 메서드는 먼저 /res/raw에 저장된 텍스트 파일에서 선을 가져와야합니다.android - 줄 단위로 텍스트 파일에서 읽음

기본적으로 Android 클래스에서 자바 클래스에있는이 메서드를 호출해야합니다. 이것이 어떻게 가능한지?

활동 클래스 조각 (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) { 
         } 

자바 클래스 조각 (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

답변

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

+0

문제는 없지만 괜찮습니다. :) – user2277872

관련 문제