I'm using Netbeans 8.0.2 with 64bit JDK-1.8 on Windows 10 x64 machine (also tested on Ubuntu 15.04)
This is a file from a chat system which checks operation (signin/signout) and subsequently, checks in onlineusers.txt
if user exists, if not it writes user to file.
Edit
My program is writing somewhere because it can execute all 3 if-else blocks successfully, but the problem is the text file to which I have set path, is still blank.
P.S. - for writing in file I've already tried method of creating temp file writing to it, deleting old, renaming temp. That didn't worked out on Netbeans (I tried it without IDE and it did work)
Here's my code, I've been trying with parameters - 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);
}
}