#encoding
Вопрос:
Почему я получаю эту ошибку? Я пытаюсь извлечь информацию из PDF-файла банковской выписки и подсчитать разные счета за месяц. Я записываю данные из PDF в текстовый файл, чтобы получить конкретные данные из файла (например, ASPEN HOME IMPRO, затем повторяю, какова сумма в долларах, затем считываю эту текстовую строку в строку).
Когда Files.readAllLines(Path.get("bankData").get(0)
код запускается, я получаю сообщение об ошибке. Есть какие-нибудь мысли, почему? Проблема с кодировкой?
Вот код:
public static void main(String[] args) throws IOException {
File file = new File("C:\Users\wmsai\Desktop\BankStatement.pdf");
PDFTextStripper stripper = new PDFTextStripper();
BufferedWriter bw = new BufferedWriter(new FileWriter("bankData"));
BufferedReader br = new BufferedReader(new FileReader("bankData"));
String pdfText = stripper.getText(Loader.loadPDF(file)).toUpperCase();
bw.write(pdfText);
bw.flush();
bw.close();
LineNumberReader lineNum = new LineNumberReader(new FileReader("bankData"));
String aspenHomeImpro = "PAYMENT: ACH: ASPEN HOME IMPRO";
String line;
while ((line = lineNum.readLine()) != null) {
if (line.contains(aspenHomeImpro)) {
int lineNumber = lineNum.getLineNumber();
int newLineNumber = lineNumber 4;
String aspenData = Files.readAllLines(Paths.get("bankData")).get(0); //This is the code with the error
System.out.println(newLineNumber);
break;
} else if (!line.contains(aspenHomeImpro)) {
continue;
}
}
}
Ответ №1:
Так что я все понял. Мне пришлось проверить свойства рассматриваемого текстового файла (я использую Eclipse), чтобы выяснить, какова фактическая кодировка текстового файла.
Затем, при создании файла в программе, закодируйте текстовый файл в UTF-8, чтобы Files.ReadAllLines мог прочитать и захватить данные, которые я хотел получить.