Я использую Netbeans 8.0.2 с 64-битным JDK-1.8 на компьютере с Windows 10 x64 (также тестируется на Ubuntu 15.04) Это файл из системы чата, которая проверяет операцию (signin/signout) и затем проверяет в onlineusers.txt
, если пользователь существует, если он не записывает пользователя в файл.
Редактировать
Моя программа пишет где-то, потому что он может выполнить все 3, если-иначе блоки успешно, но проблема заключается в текстовый файл, который я поставил путь, по-прежнему пусто.Запись в файл с использованием Java
P.S. - для записи в файл я уже пробовал метод создания временного файла, записывающего его, удаляя старые, переименовывая temp. Это не работал на Netbeans (я пробовал без IDE и он сделал работу)
Вот мой код, я пытался с параметрами - user=nick&oper=signin
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
System.out.println("Users.java Start");
String onlineUserPath = getClass().getResource("/textfiles/onlineusers.txt").getPath();
File onlineUsers = new File(onlineUserPath);
BufferedReader reader = new BufferedReader(new FileReader(onlineUsers));
ArrayList<String> tempUsers = new ArrayList<>();
boolean userExist = false;
String s;
String user = request.getParameter("user");
String operation = request.getParameter("oper");
tempUsers.add(user); //uncommented
if ("signin".equals(operation)) {
while ((s = reader.readLine())!=null) {
if (s.equals(user)) { //edited
userExist = true;
out.print("userexist");
break;
} else {
tempUsers.add(s);
out.print("signin");
}
}
} else if("signout".equals(operation)) {
while ((s = reader.readLine()) != null) {
if (s.equals(user) { //edited
out.print("signout");
userExist = true;
continue;
}
tempUsers.add(s);
}
if (!userExist)
out.print("usernotfound");
} else if ("showmsg".equals(operation)) {
userexist = true; //added
while ((s = reader.readLine()) != null) {
out.print(s + "<br/>");
}
}
//Writing
if (!userExist) {
FileWriter writer = new FileWriter(onlineUsers, false);
for (String add : tempUsers) {
writer.write(add);
System.out.println(add);
}
writer.close();
}
reader.close();
System.out.println("User.java code complete");
} catch(Exception e) {
System.out.println("Exception: " + e);
}
}
Это не имеет никакого отношения к написанию файла, чата или Netbeans. – EJP
@EJP Пожалуйста, прочтите мое изменение еще раз. Я хочу знать, почему мой текстовый файл пуст, когда программа работает отлично. Где хранятся мои данные? –