2012-09-19 2 views
1

긴 문장을 훨씬 쉽게 작성하려는 목적으로 채팅을 통해 음성을 보내는 버퍼링 된 리더를 만들려고합니다. 나는이 버퍼링 된 독자에게 듣기를 원하지만 대부분의 경우 작동하지만 마지막 행만 읽는다. 다른 모든 것은 완벽하게 작동한다. 코드에서 어디가 잘못 되었습니까? 여기에서 참조 할 수있다 (명확한 설명을 위해, "eggtime"는 시간 지연은 부울)미니 크래프트 용 내 버퍼링 된 리더는 마지막 줄만 읽습니다.

정적 파일 와플 = 새 파일 (Minecraft.getMinecraftDir() "speech.txt"); 라인

speechmakerchat = notataco; 

당신이 이전에 읽은 값을 버리고, 마지막 줄에 speechmakerchat의 내용을 교체에서

public static void speechedo(String args) 
{ 


    if(waffles.exists()) 
    { 
     @SuppressWarnings("resource") 
     BufferedReader read = null; 
     try { 
      read = new BufferedReader(new FileReader(waffles)); 
     } catch (FileNotFoundException e) { 

      e.printStackTrace(); 
     } 
     String notataco; 
     if (eggtime){ 
     try { 
      for(int i = 0; (notataco = read.readLine()) != null; i++) 
      { 

       speechmakerchat = notataco; 


      } 
     } catch (IOException e) { 

      e.printStackTrace(); 
     } 
     } 

    }else{ 
     return;} 

    } 

답변

0

. 당신은 이전에 새로운 데이터를 연결할 필요가 : 그런데

speechmakerchat += notataco; 

, 당신이 당신의 변수 ... 재미 ... 이름 지정 규칙이있다. 마인 크래프트에 대한

+0

내가 전체 파일을 한 줄로 묶어 놓았을 때 speechmakerchat은 클라이언트에게 채팅 할 때 무엇을 말 할까를 알려주는 문자열이며, 채팅 할 때 너무 오랫동안 채팅 메시지가 뜨는 오류가 발생했습니다. 한 번에 한 줄씩 읽고 다시 한 번 다음 줄로 가려면 어떻게해야합니까? – getynge

+0

죄송합니다.하지만 그 질문에 대답하려면 API에 대해 자세히 알아야합니다. – Philipp

+0

텍스트 또는 원시 코드 자체? 나는이 텍스트에서 speechmakerchat이 문자열이라고 말할 수있다.이 문자열의 내용은 채팅을 통해 틱 기반 지연을 통해 보내지는데,이 틱은 180 틱마다 한 번 활성화된다.이 180 틱이 발생할 때 설정 문자열을 보내는 부울을 토글한다. 채팅 메시지. – getynge

0

내 버퍼링 독자는 마지막 라인

아니, 당신의 버퍼 독자가 모든 라인을 읽어을 읽습니다. 그러나 당신은 마지막 줄을 제외한 모든 것을 버리고 있습니다.

또한 예외 처리가 좋지 않습니다. BufferedReader를 구성하는 IOException 이후에 메서드를 계속해서는 안됩니다. 주로 catch 블록이 잘못된 위치에 있습니다. 모든 주 코드를 따라야합니다.

관련 문제