Имеются файлы с кириллицей в названии и возможно в содержимом файлов. Кодировка файлов windows-1251 (при этом кодировка файла исходника UTF-8, но его изменение ничего не меняет... может оно и не должно чего-либо менять, но для меня это пока темный лес). Программа корректно считывает данные, но при этом выдает ошибки следующего типа:
D:\Projects\DataPreparation_DataBase_To_Petrel\U_AGAN_BV8\incl\source\1Р’_0.las (Не удается найти указанный файл) ...Завершение записи файла: output.incl
package incl;
import gis.Lister;
import java.beans.Encoder;
import java.io.*;
import java.util.Locale;
import java.util.*;
import java.util.stream.BaseStream;
public class IncFile extends File {
ArrayList<String> incData = new ArrayList<>();
public IncFile(File sourceFile){
super(sourceFile.getAbsolutePath());
}
public String getWellName() throws NullPointerException {
String curLine = "";
try (Scanner sc = new Scanner(new File(this.getAbsolutePath()), "windows-1251")) {
while (sc.hasNextLine()) {
//считывание строки
curLine = sc.nextLine();
System.out.println(curLine);
//проверка строки на соответствие паттерну
if (curLine.matches("^.*(Well|WELL|well)\\t*\\s*:.*")) {
curLine = curLine.replaceAll(".*:\\s*\\t*", "");
System.out.println(curLine);
break;
}
}
} catch (FileNotFoundException ex) {
System.out.println(ex.getMessage());
} finally {
return curLine;
}
}
public void writeOutputFile() throws IOException {
File incFile = new File(this.getParent() + "\\" + "output" + ".incl");
BufferedWriter incFile_writer = new BufferedWriter(new FileWriter(incFile.getAbsolutePath()));
//получаем список всех файлов инклинометрий
Lister lister = new Lister(this.getParent(), "las");
File[] incFiles = lister.getFiles(); //работает
for (File f : incFiles) {
incFile_writer.write("WELL: " + this.getWellName() + "\n");
incFile_writer.write("#SOURCE_FILE: " + this.getAbsolutePath() + "\n");
this.getTheInclData(f);
for (String str : incData) {
incFile_writer.write(str + "\n");
}
incData.clear();
}
incFile_writer.close();
System.out.println("...Завершение записи файла: "+incFile.getName());
}
public void getTheInclData(File f) throws FileNotFoundException {
Scanner f_sc = new Scanner(f, "windows-1251");
String curLine;
outer: while (f_sc.hasNext()) {
curLine = f_sc.nextLine();
if (curLine.toUpperCase().matches(".*~ASCII.*")) {
break outer;
}
}
String[] tmpArray;
outer: while (f_sc.hasNext()) {
curLine = f_sc.nextLine();
if (curLine.startsWith("#")) continue outer;
else {
tmpArray = curLine.trim().split("\\s+|\\t+");
incData.add(tmpArray[0].concat("\t").concat(tmpArray[1]).concat("\t").concat(tmpArray[2]));
}
}
f_sc.close();
}
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вот код автозапуска службыКод срабатывает видно по логам
Поставили задачу, написать задание с использованием Spring контроллера (Простая форма ввода сообщения, сохранения, вывода сообщения и тд