2016-06-15 9 views
1

私は行の配列を含むテキストファイルを持っています。それらの一部はすべてヌルエントリです。意味は、いくつかの行がnull; null; null; null; null; null;いくつかはヌル、ヌル、アップル、オレンジ、ヌル、 各行の長さが異なります。これは私がその後、適切にあなたの質問を理解していれば、あなたが通り変更する必要が今すべてnullの場合は、txtから行を削除してください

BufferedReader tncReader = new BufferedReader(new FileReader("something.txt")); 
BufferedWriter tncWriter = new BufferedWriter(new FileWriter("something_cleaned.txt")); 
boolean allNull = true; 

while(tncReader.readLine() != null){ 
    String s = tncReader.readLine(); 
    String[] currentLine = s.split(";"); 
    System.out.println(currentLine[0]); 

    for(String ss:currentLine){ 
     if(ss!=null){ 
      allNull = false; 
      tncWriter.write(s + System.getProperty("line.separator")); 
      break; 
     } 
    } 
} 

答えて

2

私のコードでどのように私はすべてのNULLエントリが含まれているtxtファイルから行を削除しますか?\

以下

BufferedReader tncReader = new BufferedReader(new FileReader("something.txt")); 
BufferedWriter tncWriter = new BufferedWriter(new FileWriter("something_cleaned.txt")); 
boolean allNull = true; 

while(tncReader.readLine() != null){ 
    String s = tncReader.readLine(); 
    String[] currentLine = s.split(";"); 
    System.out.println(currentLine[0]); 

    for(String ss:currentLine){ 
     if(!"null".equalIgnoreCase(ss)){ //this line modified 
      allNull = false; 
      tncWriter.write(s + System.getProperty("line.separator")); 
      break; 
     } 
    }    
} 
+0

私は何かを見逃しましたか?私は彼が "ヌル"ラインを削除する方法を求めていると思った? – Seth

+0

私はこの部分だけを修正しました。 'if(ss!= null){'は失敗するでしょう – SpringLearner

0

私はしばらくしてからそれを分かりました。すみませんでした。 nullは実際にはStringオブジェクトでもあります。そして、はい、私は全体を通して単語 "null"を含む行を削除したいと思います。 また、そのファイル内の行を削除する方法を見つけました。

コードは次のような次のとおりです。

File input = new File("something.txt"); 
File output = new File("temp.text"); 
BufferedReader reader = new BufferedReader(new FileReader(input)); 
BufferedWriter writer = new BufferedWriter(new FileWriter(output)); 

String current; 

while((current = reader.readLine())!=null){ 
    String[] data = current.split(";"); //puts whole line into an array 

    boolean allNull = true; 
    //check if entire array is all null 
    for(String s:data){ 
     if(!s.equals("null")){ 
      allNull = false; //any traces of some other word besides null would render the boolean untrue 
     } 
    } 
    if(allNull==false){ 
     writer.write(current + System.getProperty("line.separator")); 
    } 
} 
reader.close(); 
writer.close(); 

//Delete original file 
if(!input.delete()){ 
    System.out.println("Could not delete file"); //error handling 
} 
//Rename file to original 
if(!output.renameTo(input)){ 
    System.out.println("Could not rename file"); //error handling 
} 

不正行為が進むにつれ、私は元を削除するには、先に行くと、それにTEMP名前を変更し、「TEMP.TXT」一時ファイルに書いた後。だから私が入って行を削除したように見えるだろう。

関連する問題