2013-10-31 5 views
-2

나는 아주 빠른 질문이있다.Java, 파일에서 읽기

내가 파일 이름 "1234.txt"

Betty Boop 
BABAAAABAAAAAAABAAAABBAAAAAABAAAABABAABAAABABABAABAAAAAABAAAAAABAAAAAA 
Snoopy 
AABBAABBBBBABABAAAAABABBAABBAAAABBBAAABAABAABABAAAABAABBBBAAABBAABABBB 
Bugs Bunny 
AABAABBABBBAAAABAAAABAAAAABABBBAABAAAABAABBBBABAAAABAABAAAAAABBAAAAABB 
Daffy Duck 
BAAAAA-BAAAABABAAAAAABA-AAAABABAAAABAABAA-BAAABAABAAAAAABA-BAAABA-BAAA 
The frumious bandersnatch 
-BBABAA-BBBBBABBBBA-BABBBBBBBBBABBBBBBABB-BBBABBABBBBBBB-BABBBBBBBBBBB 
Minnie Mouse 
BABA-AABABBBAABAABA-ABABAAAB-ABAAAAAA-AAAABAAABAAABAAAAAB-ABBAAAAAAAAA 
Luke Skywalker 
BBBAAABBBBAABA-BAAAABBABBAAABBAABAAB-AAAAABBBABAABABA-ABBBABBABAA-AAAA 
Han Solo 
BA-ABABBB-BBBAABABAAAABBAAABBAAABBABABBAAABABBAAABABAAAABBABAAABBABAAB 
Princess Leia 
BABBAAABBBBAAABBA-AAAABABBABBABBAAABAABAAABBBA-AABAABAAAABAAAAABABBBAA 

첫 번째 줄은 사람의 이름을, 두 번째 줄은 그 사람의 성격이다.

두 개의 다른 문자열로 이름과 성격을 캡처하고 싶습니다. name, getPersonal. 하지만 어떻게해야할지 모르겠다. 내가 쓰는 방식대로, 모든 텍스트의 이름이 바뀔 것입니다. 어떻게 해결할 수 있을까요?

while (input.hasNextLine()) { 
      String name = input.nextLine(); 
      System.out.println("name is here: " + name); 

      String getPersonal = input.nextLine(); 
      System.out.println(" personal is here " + getPersonal); 

} 

편집 : 1 :

내 코드 그냥 코드 그랬다면 테스트는 "개인이 여기에있다"는에서 System.out.println "이름이 여기에있다", 그리고 내가 그것을 기대하고, 여기서 첫 번째 라인을 이름으로 저장하고, 두 번째 라인은 성격으로 저장하는 것입니다.

나는이 두 문자열이 다른 일을하고 싶습니다.

이 코드를 실행하면 "No Line Found"오류가 표시됩니다. 모든 본문이 이름을 짓기 때문에 성격에 대한 본문은 없습니다.


편집 2 : 다음은 출력 :

Enter the name of the file with the personality data: 
1234.txt 
name is here: 
personal is here Betty Boop 
name is here: BABAAAABAAAAAAABAAAABBAAAAAABAAAABABAABAAABABABAABAAAAAABAAAAAABAAAAAA 
personal is here Snoopy 
name is here: AABBAABBBBBABABAAAAABABBAABBAAAABBBAAABAABAABABAAAABAABBBBAAABBAABABBB 
personal is here Bugs Bunny 
name is here: AABAABBABBBAAAABAAAABAAAAABABBBAABAAAABAABBBBABAAAABAABAAAAAABBAAAAABB 
personal is here Daffy Duck 
name is here: BAAAAA-BAAAABABAAAAAABA-AAAABABAAAABAABAA-BAAABAABAAAAAABA-BAAABA-BAAA 
personal is here The frumious bandersnatch 
name is here: -BBABAA-BBBBBABBBBA-BABBBBBBBBBABBBBBBABB-BBBABBABBBBBBB-BABBBBBBBBBBB 
personal is here Minnie Mouse 
name is here: BABA-AABABBBAABAABA-ABABAAAB-ABAAAAAA-AAAABAAABAAABAAAAAB-ABBAAAAAAAAA 
personal is here Luke Skywalker 
name is here: BBBAAABBBBAABA-BAAAABBABBAAABBAABAAB-AAAAABBBABAABABA-ABBBABBABAA-AAAA 
personal is here Han Solo 
name is here: BA-ABABBB-BBBAABABAAAABBAAABBAAABBABABBAAABABBAAABABAAAABBABAAABBABAAB 
personal is here Princess Leia 
name is here: BABBAAABBBBAAABBA-AAAABABBABBABBAAABAABAAABBBA-AABAABAAAABAAAAABABBBAA 
personal is here Captain America 
name is here: BBAA-BABAAABAABAABAAABBABABABAAA-ABBAAABAABAAABAABABA-AA-AAAAAABB-ABAA 
personal is here No Answer Dude 
name is here: ---------------------------------------------------------------------- 

오류 :

java.util.NoSuchElementException: No line found 
at java.util.Scanner.nextLine(Scanner.java:1585) 
at Capitalize.getName(Capitalize.java:49) 
at Capitalize.main(Capitalize.java:26) 

어떻게 적절한 문자열로이 라인을 위해 그것을 해결하기 위해?


편집 3 : 그래서 나는 너희들이 그것이 잘 작동하고 내 것이 왜 보이는지를 안다. 나는 "실제"첫 줄을 놓는 것을 잊어 버렸다.

11 
Betty Boop 
BABAAAABAAAAAAABAAAABBAAAAAABAAAABABAABAAABABABAABAAAAAABAAAAAABAAAAAA 
Snoopy 
AABBAABBBBBABABAAAAABABBAABBAAAABBBAAABAABAABABAAAABAABBBBAAABBAABABBB 
Bugs Bunny 
AABAABBABBBAAAABAAAABAAAAABABBBAABAAAABAABBBBABAAAABAABAAAAAABBAAAAABB 
Daffy Duck 
BAAAAA-BAAAABABAAAAAABA-AAAABABAAAABAABAA-BAAABAABAAAAAABA-BAAABA-BAAA 
The frumious bandersnatch 
-BBABAA-BBBBBABBBBA-BABBBBBBBBBABBBBBBABB-BBBABBABBBBBBB-BABBBBBBBBBBB 
Minnie Mouse 
BABA-AABABBBAABAABA-ABABAAAB-ABAAAAAA-AAAABAAABAAABAAAAAB-ABBAAAAAAAAA 
Luke Skywalker 
BBBAAABBBBAABA-BAAAABBABBAAABBAABAAB-AAAAABBBABAABABA-ABBBABBABAA-AAAA 
Han Solo 
BA-ABABBB-BBBAABABAAAABBAAABBAAABBABABBAAABABBAAABABAAAABBABAAABBABAAB 
Princess Leia 
BABBAAABBBBAAABBA-AAAABABBABBABBAAABAABAAABBBA-AABAABAAAABAAAAABABBBAA 

예, INT입니다. 어떻게 그 int를 건너 뛸 수 있습니까? 다음 줄로 가라.


편집 4 : 나는 멍청하니? 나 한텐 웃지 마. 나는 완전히 새내기예요. 감사 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!

+0

무엇이'name'에 할당됩니까? –

+0

당신이 얻는 결과는 무엇입니까? 당신이 기대하는 결과는 무엇입니까? 왜 당신 코드가 당신의 질문에서 당신이 말한 것을하고 있다고 생각합니까? 실행중인 문제점을 보여주는 완전한 컴파일 가능한 예제를 게시 할 수 있습니까? – vanza

+0

프로그램의 출력을 알려주시겠습니까? –

답변

1
while (input.hasNextLine()) { 
     String name = input.nextLine(); 
     System.out.println("name is here: " + name); 

     String getPersonal = input.nextLine(); 
     System.out.println(" personal is here " + getPersonal); 

} 

파일이 다음 줄이있는 경우 당신은 테스트하고, 그것이 다음 줄이있는 경우, 당신은 다음 라인을 읽고.

파일의 행 수가 홀수 (파일이 출력으로 표시되는 대시로 끝나는 파일)로 보인다는 이유로 마지막 반복은 존재하지 않는 행을 읽으려고합니다.

편집 :

라인을 읽고 건너 뛰기 : 그것을 읽고 :

input.nextLine(); 
// now start looping to read the lines you really want to read 
0

당신이 int (그리고 난 당신이 이것에 대한 nextInt()을 사용하고 추정하고 있습니다) 것을 읽을 때, nextLine() 전화 나중에; nextInt()은 숫자 뒤에 오는 줄 바꿈 문자를 읽지 않으므로