2016-10-12 2 views
-1

javafx의 테이블 뷰에 텍스트 파일 내용을 채우려고합니다. 다음은 내 코드입니다 :javafx의 테이블 뷰에 내용을 텍스트로 쓰는 방법

public static void loadFile() throws FileNotFoundException, IOException { 
    ObservableList<Song> songs = FXCollections.observableArrayList(); 
    File file = new File("songDATA.txt"); 
    FileReader reader = new FileReader(file); 
    BufferedReader br = new BufferedReader(reader); 
    String line; 
    while ((line = br.readLine()) != null) { 
    String[] song = line.split("//"); 
    songs.add(new Song(song[0], song[1], song[2], Double.parseDouble(song[3]), 
     Integer.parseInt(song[4]))); 

    } 
    reader.close(); 
} 

하지만 예외 오류 메시지가 주어지고 오전 :

이 C 실행 : \ 사용자 \ 사용자 \ 문서 \ NetBeansProjects \ MusicLibrary \ DIST \ run1361663306 \ MusicLi brary .JAR 사용하여 플랫폼 C : \ 프로그램 파일 \ 자바 \ jdk1.8.0_74 \ JRE/빈/자바 년 10 월 13 일 2016 오후 8시 47분 31초 com.sun.javafx.binding.SelectBinding $ SelectBindingHelper getObservableValue 경고 : 선택 바인딩을 평가하는 중 예외가 발생했습니다. [너비] 2016 년 10 월 13 일 8 : 47:31 PM com.sun.javafx.binding.SelectBinding $ SelectBindingHelper getObservableValue 경고 : 예외 평가하는 동안 선택 결합 [높이] java.lang.RuntimeException가 "자바 FX 애플리케이션 쓰레드"글 예외 : javafx.fxml에서 .FXMLLoader $ MethodHandler.invoke javafx.fxml.FXMLLoader $ ControllerMethodEventHandler.handle (FXMLLoader.java : 1657)에서 (1774 FXMLLoader.java:) com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent에서 (CompositeEventH andler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent (EventHandlerManag er.java:238) at com.sun.javafx.ev com.sun.javafx.event.BasicEventDispatcher.dispatchEvent에서 ent.EventHandlerManager.dispatchBubblingEvent (EventHandlerManag er.java:191) (BasicEventDispatcher.jav A : 58) 에서 com.sun.javafx.event.EventDispatchChainImpl. dispatchEvent (Ev entDispatchChainImpl. java : 114) com.sun.javafx.event.EventUtil.fireEventImpl (EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent (EventUtil.java : 49) at javafx.event.Event.fireEvent (Event.java:198) at javafx.scene.control.MenuItem.fire (MenuItem.java:462) at com.sun.javafx.scene.control.skin .ContextMenuContent $ MenuIte mContainer.doSelect (ContextMenuContent.j ava : 1405) at com.sun.javafx.scene.control.skin.ContextMenuContent $ MenuItemContainer.lambda $ 이러다의 eateChildren $ (343) (콘 textMenuContent.java : 1358)

+0

이것은 내 텍스트 파일입니다. ** J. Cole // Lost Ones // Hip Hop // 24.66 // 3000Erykah Badu // 시간 낭비 // 네오 소울 // 24.66 // 4000Common // 생명의 책 // 힙합 // 24.66 // 2000CommonGround // dasdsad // asdsadsad // 24.66 // 3000hoop // hoola // me // 44545.0 // 45566 ** – Tom

+3

stacktrace 후 –

+0

이 오류 추적은 게시 한 코드에 아무런 영향을 미치지 않으므로 전체 코드를 게시하십시오. 그렇지 않으면 잘못된 정보를 말할 수 없습니다. – DVarga

답변

0

이 오류 추적 당신이 게시 코드 아무것도하지 않는다, 하지만 어쨌든 입력 파일은 잘못되었습니다.

파일에 예기치 않은 문자가 있습니다. 모두 네 번째 줄에 "300 0"과 다섯 번째 줄에 "44 545.0"는 포함

당신은 ideone에서 확인 가능 :

String str1 = "300‌​0"; 
String str2 = "44‌​545.0"; 

str1.chars().forEach(c -> System.out.println((char)c + " " + (int) ((char)c))); 
System.out.println(""); 
System.out.println("--------------------"); 
str2.chars().forEach(c -> System.out.println((char)c + " " + (int) ((char)c))); 

출력 (첫 번째 열은 문자 코드입니다) :

3 51 
0 48 
0 48 
‌ 8204 
​ 8203 
0 48 
-------------------- 
4 52 
4 52 
‌ 8204 
​ 8203 
5 53 
4 52 
5 53 
. 46 
0 48 
+0

답변을 주셔서 고마워하지만 작동하지 않는 것 같은데, 위의 loadFile 함수 코드가 맞습니까? – Tom

+0

예외 추적으로 질문을 업데이트하십시오. – DVarga

+0

안녕하세요, 예외 추적 – Tom

관련 문제