package cn.flightfeather.supervision.docx4j.simpleDemo;
|
|
import java.io.FileInputStream;
|
import java.util.Scanner;
|
|
/**
|
* Where Word reports an error in a very large file,
|
* XML-aware tools such as Visual Studio might have trouble
|
* opening it. This simple class will print out specified
|
* lines of document.xml.
|
*
|
* Note: this is really only useful if the file was
|
* pretty printed at the time Word reported the error
|
* (since otherwise the error will typically be somewhere
|
* on a very long line 1).
|
*
|
* @author jharrop
|
*
|
*/
|
public class ErrorLineExtractor {
|
|
public static void main(String[] args) throws Exception {
|
|
String path = System.getProperty("user.dir") + "/document.xml";
|
|
long count = 0;
|
|
FileInputStream inputStream = null;
|
Scanner sc = null;
|
try {
|
inputStream = new FileInputStream(path);
|
sc = new Scanner(inputStream, "UTF-8");
|
while (sc.hasNextLine()) {
|
String line = sc.nextLine();
|
// System.out.println(line);
|
count++;
|
|
if (count>1714250) {
|
System.out.println(count + ": " + line);
|
}
|
if (count>1714400) {
|
return;
|
}
|
}
|
// note that Scanner suppresses exceptions
|
if (sc.ioException() != null) {
|
throw sc.ioException();
|
}
|
} finally {
|
if (inputStream != null) {
|
inputStream.close();
|
}
|
if (sc != null) {
|
sc.close();
|
}
|
}
|
|
}
|
}
|