В Linux при создании текстового файла автоматически неявно в конец файла добавляется символ
index+=lineStr.getBytes("UTF-8").length+2;
position=((index-1)-(lineStr.length()+1));
прямой доступ к файлам, когда у тебя данных много, а получить тебе нужно небольшой их кусок будет сильно медленее
кто такое сказал?Отвечаю - я! :)
в случае, если у тебя индекс есть, то на вопрос "заблокировал ли пользователь А пользователя Б" ты получишь ответ за почти константное время.
какой индекс повесишь, так и будет.
Если нужно будет получить список пользователей, которых заблокировал пользователь 'A', то просто делаем запрос
При выборе чего-либо из формы Thymeleaf может вернуть лишь строку, все дальнейшие преобразования за Spring-ом.
зачем на каждого пользователя таблицу создавать?
Просто создаёте отдельную таблицу blocked_users (user_id, blocked_user_id)
Просто создаёте отдельную таблицу blocked_users (user_id, blocked_user_id).
Для каждой отдельной блокировки создаётся отдельная запись
не нужно хранить обычный реляционный список в виде текста и проблемы не будет никакой.
Никак- плохо...
если нужно помещать в таблицу данные, которые не лезут в LONGTEXT
Вы явно выбрали инструмент не по задаче. Храните такое в файловой системе.
java.lang.NumberFormatException
эта ошибка возникает и с полями другого типа. У меня была такая же проблема, и я кстати её не решил... На данный момент тоже думаю, выводить через th:block или вообще формировать кусок кода программно, а в модель передавать один большой html стринг. Есть ли в этом всём какая-то разница, кроме эстетических предпочтений? дозапись это простая операция, не затрагивает остальной файл, но что означает первый ушел?
настоятельно рекомендую изменить бизнеслогику этого процесса
@RequestMapping("/images/**")
@ResponseBody
public HttpEntity<byte[]> uploadImagesToBrowser (HttpServletRequest req) {
String imageURL = req.getRequestURL().toString();
File file = new File (imageURL);
byte[] image = new byte [(int) file.length()];
try {
image = Files.readAllBytes(file.toPath()); // массив байтов передаваемый в стриме.
} catch (IOException e) {
// нет доступа или файл не найден
e.printStackTrace();
}
String format = imageURL.substring(imageURL.indexOf("."));
HttpHeaders headers = new HttpHeaders();
headers.setContentLength(image.length);
switch (format) {
case ".png" : headers.setContentType(MediaType.IMAGE_PNG); break;
case ".jpg" : headers.setContentType(MediaType.IMAGE_JPEG); break;
case ".gif" : headers.setContentType(MediaType.IMAGE_GIF); break;
}
return new HttpEntity<byte[]>(image, headers);
}
модераторам жалуешься на вполне вежливые и обоснованные комментарии.