2014-03-26 3 views
0

파일에 arraylist 문자열 목록을 쓰려고합니다. arraylist 문자열은 실제로 트위터 JSON에서 변환 된 문자열이며 파일에 트윗 텍스트를 쓰려고합니다.쓰기 ArrayList에 오류가 있습니다.

Exception in thread "main" java.lang.NullPointerException 
    at java.io.Writer.write(Unknown Source) 
    at kr.ac.uos.datamining.test.main(test.java:32) 

전체 클래스에 대한 코드는 다음과 같습니다 :

그러나, 나는이 오류가 계속 그것은 알 수없는 소스로 말했다되기 때문에

package kr.ac.uos.datamining; 

    import java.io.File; 
    import java.io.FileNotFoundException; 
    import java.io.*; 
    import java.sql.Connection; 
    import java.sql.DriverManager; 
    import java.sql.PreparedStatement; 
    import java.sql.SQLException; 
    import java.util.ArrayList; 
    import java.util.List; 

    import kr.ac.uos.datamining.JSONParser; 
    import kr.ac.uos.datamining.Tweet; 
    import kr.ac.uos.datamining.User; 

    public class test { 

    public static List <String> list = new ArrayList<String>(); 

    public static void main(String[] args) throws IOException, FileNotFoundException, InterruptedException, SQLException { 

     JSONParser j = new JSONParser(new File("D:/curl-7.32.0/samsunggalaxy-01-23-2014.txt")); 
     ArrayList<Tweet> tweets = j.getTweets(); 

     for(Tweet tweet : tweets){ 
      list.add(tweet.getText()); 
     } 

     FileWriter writer = new FileWriter("D:/samsunggalaxy.txt"); 
     for (String tweet: list) { 
Line 32 writer.write(tweet); 
     } 
     writer.close(); 
    } 
    } 

것은, 그것은 String tweet: list의 문제입니다 선? String str: list으로 변경하려고 시도했지만 작동하지 않습니다.

+0

그 목록에 무언가가 있는지 확인 하시겠습니까? –

+0

일부 트윗에는 null 텍스트가 있습니다. 그것이 NPE를받는 이유입니다. –

+0

목록을 사용하여 텍스트 파일 대신 MySQL로 쓸 때 작동하고있었습니다. 그래서 목록이 작동하고 있다고 생각합니다. – fuschia

답변

0

NullPoineterException을 얻는 유일한 방법은 텍스트가 null이라는 것입니다. 따라서 작성하기 전에 작성하려는 내용의 유효성을 검사하십시오.

for (String tweet: list) { 
    if(tweet != null || !tweet.equals("")) { 
     writer.write(tweet); 
    } 
} 
0

짹짹 객체 중 하나가 null 인 것으로 보입니다. 이것은 여기의 문제입니다.

0

String tweet이 null 인 것 같습니다. 따라서 Tweet.getText() 메소드가 null을 반환하지 않는지 확인하십시오.

관련 문제