Я реализовал BufferedReader для чтения текстового файла (MultipartFormdata из пользовательского интерфейса, Restbased) для моего приложения:
if (input == null || input.getParts() == null || input.getParts().isEmpty()) {
throw new IllegalArgumentException("Multipart request is empty");
}
try {
InputStream result;
if (input.getParts().size() == 1) {
InputPart filePart = input.getParts().iterator().next();
MultivaluedMap<String, String> header = filePart.getHeaders();
filename = ImportHelperService.getFileName(header);
result = filePart.getBody(InputStream.class, null);
} else {
result = input.getFormDataPart("file", InputStream.class, null);
}
if (result == null) {
throw new IllegalArgumentException("Can't find a valid 'file' part in the multipart request");
}
BufferedReader in = new BufferedReader(new InputStreamReader(result, StandardCharsets.UTF_8));
String temp ="";
StringBuilder sb = new StringBuilder();
while ((temp = in.readLine()) != null) {
if(!sb.toString().equals(""))
sb.append("\n");
sb.append(temp);
}
in.close();
fileString = sb.toString();
} catch (IOException e) {
throw new IllegalArgumentException("Error while reading multipart request", e);
}
В моем входе иногда есть специальный символ µ , но мой BufferedReader не может справиться с этим. Вход для этого - черный квадрат с? Кто-нибудь может мне помочь? Я попытался скопировать этот µ вручную в мой текстовый файл, после чего µ был идентифицирован. Но если мы получим это µ в текстовом файле нашими клиентами, то µ будет? Как я могу справиться с этим?