2012-02-26 7 views
3

다음 코드가 있습니다. 나는 왜 그것이 작동하지 않는지 이해하지 못합니다.Java- 텍스트 파일 읽기 및 배열로 저장

정말 감사드립니다.

import java.util.Scanner; 
import java.io.*; 

class ReadFiles { 
    String [] codes = new String[99]; 
    int i = 0; 

    private Scanner readCodes; 

    public void openCodesFile() { 
     try { 
      readCodes = new Scanner(new File("C:/Users/Carlo/Desktop/Files/codes.txt")); 
     } catch (Exception e) { 
      System.out.println("Could not locate the data file!"); 
     } 
    } 

    public void readCodesFile() { 

     while(readCodes.hasNext()) { 
      codes[i] = readCodes.nextLine(); 
      i++; 
      System.out.println(codes[i]); 
     } 
    } 

    public void closeCodesFile() { 
     readCodes.close(); 
    } 
} 

class NewHardware { 
    public static void main(String[] args) { 
     ReadFiles codesRead = new ReadFiles(); 
     codesRead.openCodesFile(); 
     codesRead.readCodesFile(); 
     codesRead.closeCodesFile(); 
    } 
} 

출력이 여러 번 "null"로 출력됩니다.

또한 코드를 인쇄 할뿐만 아니라 NewHardware 클래스의 코드 배열을 사용하여 조작 (인쇄, 잘라내 기 등) 할 수 있기를 원합니다.

public String readCodesFile() { 

     while(readCodes.hasNext()) { 
      codes[i] = readCodes.nextLine(); 
      i++; 
      System.out.println(codes[i]); 
     } 
        return (codes[i]); 
    } 

또는 뭔가를하지만 아직 작동되지 않았습니다

나는 readCodesFile()로 다음을 수행 생각했다. 나는 올바른 길을 가고 있는가?

아, 그냥 텍스트가 다음이 포함되어 있는지 추가하고 싶었 :

G22 
K13 
S21 
I30 
H15 
N23 
L33 
E19 
U49 

편집 : 토니 아래 Churk에

덕분에 내 바보 같은 짓 좀 도와. 나는 토니의 대답을 받아 들인다. 왜냐하면 그는 내가 생각하기에 도전했기 때문에 Churk의 대답은 가치가있다.

class NewHardware { 
    public static void main(String[] args) { 
     ReadFiles codesRead = new ReadFiles(); 

     codesRead.openCodesFile(); 

     codesRead.readCodesFile(); 

     for (int i = 0; i < 9; i++) { 
      System.out.println("\n\n" + codesRead.codes[i]); 
     } 

     codesRead.closeCodesFile(); 
    } 
} 

이 물론 아니다 최종 프로그램 코드하지만이 있습니다 (I 클래스 NewHardware에서 사용할 수있는에 대해 질문) 내 질문의 두 번째 부분에 대한

, 나는 다음과 같은했다 기본적인 아이디어를 얻는 데 도움이되었습니다. 희망이 다른 사람도 도움이됩니다.

+1

한 일을하고 일관된 질문에 대한 코드를 인쇄 할 수 있습니다. –

답변

1

readCodesFile() 메소드를주의 깊게 살펴보십시오. 모든 라인을보십시오. 뭐하는거야? 우리에게 설명해 주시겠습니까?

+0

음, 텍스트 파일의 코드를 배열에 추가하고 싶습니다. 나는이 일을 처음 접했고, 결코 해내 지 못했고, 그래서 내가 잘못하고있는 일을 정말로 이해할 수 없다. 내가 잘못 알고 있지만 그것이 무엇인지 모릅니다. 그래서 나는 그것을 일종의 방향으로 가기 위해 여기에 올렸다. –

+0

"코드 [i] = readCodes.nextLine();" 라인을 읽고 그것을 코드 [i]로 막습니다. 그런 다음 "i ++"는 색인을 증가시킵니다. 이제 println은 어떻게됩니까? –

2
codes[i] = readCodes.nextLine(); 
      i++; 
      System.out.println(codes[i]); 

당신은 [내가 ++]

+1

System.out.println 뒤에 i ++를 넣으십시오 (코드 [i]); – Churk

+0

답변을 주셔서 감사합니다, 나는 아래의 토니 때문에 그것을 발견하고 귀하의 답변과 의견을 읽었습니다. –