2016-04-08 14 views
1

を使用してファイル内の特定の行を削除する問題は、テキストファイルに多数の行を含む情報が格納されていることです。各行は次のようになります。行番号

製品:<名前:、価格のインポート:数量:>

私が入力するユーザーを助け、コード番号とプログラムを書くしようとしているがその番号に対応する行を見つけ出し、その行を削除します。助言がありますか?

+0

これを読むhttp://stackoverflow.com/questions/20039980/java-replace-line-in-text-file –

+0

これを読んで、[ファイルから特定の行番号を使用して、特定の行の読み方Javaで?](http://stackoverflow.com/questions/2312756/how-to-read-a-specific-line-using-the-specific-line-number-from-a-file-in-java) – Braj

+0

これは、各行に固定長の文字が含まれているファイルですか?それ以外の場合は、以前の行をすべて読み取って、読み取り行番号にカウントを保持しています。 [RandomAccessFile](https://docs.oracle.com/javase/7/docs/api/java/io/RandomAccessFile.html)または[LineNumberReader](https://docs.oracle.com/javase/7/)を使用してください。 docs/api/java/io/LineNumberReader.html)または[BufferedReader](https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html) – Braj

答えて

1

コードの行の下に使用してみてください:

FileInputStream fs= new FileInputStream("someFile.txt"); 

BufferedReader reader = new BufferedReader(new InputStreamReader(fs)); 
BufferedWriter writer = new BufferedWriter(new FileWriter(fs)); 

for(int i = 0; i < file_length; ++i){ 
    br.readLine(); 
    String lineIWant = br.readLine(); 
    if(i==your line number){ 
     i = file_length; 
     writer.write(currentLine + System.getProperty("line.separator")); 
    } 
} 
reader.close(); 
writer.close(); 
+0

" file_length''? – muzahidbechara

+0

@muzahidbechara plzこのリンクを読むhttp://stackoverflow.com/questions/12749655/how-to-count-lines-in-file-txt-android –

0

ます。またLineNumberReaderを使用することができます。ファイルの名前、および行番号:

import java.io.LineNumberReader; 
import java.io.FileReader; 
import java.io.IOException; 

class Stackoverflow36491903 { 
    public static void main(String[] args) throws IOException { 
     int lineNo = Integer.valueOf(args[1]); 

     LineNumberReader r = new LineNumberReader(new FileReader(args[0])); 
     while (true) { 
      String line = r.readLine(); 
      if (line == null) { 
       break; 
      } 
      if (r.getLineNumber() != lineNo) { 
       System.out.println(line); 
      } 
     } 
    } 
} 

は2つの引数を取ります。

これは、要求された行番号で行を削除する行を表示するだけです。

ライターを使用してファイルに書き戻します。

0
Scanner scan = new Scanner(System.in); 
int lineNum = scan.nextInt(); 
File file = new File("file.txt"); 
FileReader reader = new FileReader(file); 
scan = new Scanner(reader); 
StringBuilder sb = new StringBuilder(""); 
while(scan.hasNextLine()) { 
    String line = scan.nextLine(); 
    if (--lineNum != 0) sb.append(line).append(System.getProperty("line.separator")); 
} 
FileWriter writter = new FileWriter(file); 
writter.write(sb.toString());