2013-05-23 4 views
2

나는 내 레벨 desing을 위해 txt 파일을 사용하고있다. 아래 내용을 사용하여 문자열 버퍼로 변환 한 다음 줄을 반복하여 게임 객체를 생성합니다.입력 스트림의 내용을 역순으로 얻는 방법은 무엇입니까?

문제는 위에서 아래로 읽는 것입니다. 그래서 내 주변을 올바른 방향으로 디자인해야합니다.

어떻게 반대 방향으로 스트림을 바꿀 수 있습니까? 또는 반대쪽으로 String Builder에 선을 씁니다.

private static String convertStreamToString(InputStream is) { 

     BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
     StringBuilder sb = new StringBuilder(); 

     String line = null; 
     try { 
      while ((line = reader.readLine()) != null) { 
       sb.append((line + "\n")); 
      } 
     } catch (IOException e) { 
      Log.w("LOG", e.getMessage()); 
     } finally { 
      try { 
       is.close(); 
      } catch (IOException e) { 
       Log.w("LOG", e.getMessage()); 
      } 
     } 
     return sb.toString(); 
+0

는이'()'문자열 빌더의 방법은 충분하지 삽입합니다? – Oneb

답변

6

당신은 sb.insert(0, line + "\n") 대신 sb.append(line + "\n"); 사용할 수 있습니다.

이렇게하면 문자열 앞에 항상 줄 바꿈이 추가되고 끝까지 추가되지 않습니다. StringBuilder는 그런 것들을 위해 정확하게 만들어 졌기 때문에 원하는 것을 정확하게 수행해야합니다.

+0

Genius. 고마워. 바보가 되서 미안하지만, 그게 왜 효과가 있는지 설명해 주시겠습니까? – Rhys

+0

설명 할 시간을내어 주셔서 감사합니다. – Rhys

+0

@Till Helge는 sb에 추가 한 다음 sb.reverse()를 반환하는 것보다 빠르거나 낫습니다. toString() – artfullyContrived

관련 문제