Java Tutorial/File/LineNumberReader
Версия от 17:44, 31 мая 2010; (обсуждение)
Compare text file line by line
/*
* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
//based on Apache technology http://www.apache.org
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.Reader;
import java.util.List;
public class Diff
{
public static void readersAsText(Reader r1, String name1, Reader r2, String name2,
List diffs)
throws IOException
{
LineNumberReader reader1 = new LineNumberReader(r1);
LineNumberReader reader2 = new LineNumberReader(r2);
String line1 = reader1.readLine();
String line2 = reader2.readLine();
while (line1 != null && line2 != null)
{
if (!line1.equals(line2))
{
diffs.add("File \"" + name1 + "\" and file \"" +
name2 + "\" differ at line " + reader1.getLineNumber() +
":" + "\n" + line1 + "\n" + line2);
break;
}
line1 = reader1.readLine();
line2 = reader2.readLine();
}
if (line1 == null && line2 != null)
diffs.add("File \"" + name2 + "\" has extra lines at line " +
reader2.getLineNumber() + ":\n" + line2);
if (line1 != null && line2 == null)
diffs.add("File \"" + name1 + "\" has extra lines at line " +
reader1.getLineNumber() + ":\n" + line1);
}
}
Use LineNumberReader class to read file
import java.io.File;
import java.io.FileReader;
import java.io.LineNumberReader;
public class Main {
public static void main(String[] args) throws Exception {
File file = new File("data.csv");
FileReader fr = new FileReader(file);
LineNumberReader lnr = new LineNumberReader(fr);
// lnr.setLineNumber(400);
String line = "";
while ((line = lnr.readLine()) != null) {
System.out.println("Line Number " + lnr.getLineNumber() + ": " + line);
}
fr.close();
lnr.close();
}
}
Using the LineNumberReader to read a text file line by line
import java.io.FileReader;
import java.io.LineNumberReader;
public class Main {
public static void main(String[] args) throws Exception {
LineNumberReader r = new LineNumberReader(new FileReader("yourFile.txt"));
String line = null;
while ((line = r.readLine()) != null) {
System.out.println(r.getLineNumber() + ": " + line);
}
r.close();
}
}