Я написал приложение на Java и продублировал его на C#. Приложение считывает и записывает текстовые файлы с данными, разделенными табуляцией, для использования программным обеспечением HMI. Программному обеспечению HMI требуется кодировка UTF или ANSI для правильного отображения символа градуса, или я бы просто использовал ASCII, который, кажется, работает нормально. Приложение C# может без проблем открывать файлы, сохраненные любой из них. Java-приложение отлично читает сохраненные файлы, но при чтении файлов, сохраненных с помощью C#, возникает небольшая проблема. Он выдает исключение numberformate при разборе первого символа в файле до и int. Этот символ всегда равен «1». Я открыл оба файла с помощью editpadlight, и они кажутся идентичными даже при просмотре с кодировкой, а кодировка - UTF-16LE. Я ломаю голову над этим, любая помощь будет оценена по достоинству.
lines = FileUtils.readLines(file, "UTF-16LE");
Integer.parseInt(line[0])
Я не вижу никакой разницы между файлом, сохраненным на С#, и файлом, сохраненным на Java.
Снимок экрана с данными в EditPad Lite
if(lines.get(0).split("\\t")[0].length() == 2){
lines.set(0, lines.get(0).substring(1));
}