我现在在做一个方案, C/S架构,客户端的用户怎么实现用文本文件在服务器上保存用户名和密码啊?
刚接触JAVA,请大家不吝赐教!

解决方案 »

  1.   

    你的问题是啥,不清晰。是不会Java操作文件的API?还是担心密码容易泄漏?还是其它什么问题?
      

  2.   

    public User doRegis(String username, String password) {
    // 验证用户名和密码
    for (User user : userList) {
    if (user.getUsername().equals(username)) {//有已经注册的用户名,返回空,经另一个对象包装后返回重名信息
    return null;
    } else {
    ((LinkedList<User>) userList).addLast(user);// 把新注册的用户信息写进用户集合里
    return user;
    }
    }
    }
    }以上是注册部分的代码,就不知该如何把这个集合写到服务器的文件里?
      

  3.   

    哦,如果是客户端访问服务器端的话,可以用WebService方式;简易点也可以直接模拟HTTP请求来做。
      

  4.   

    一般都是用jdbc保存到数据库 这样读取查找都方便
      

  5.   

    这两天在完善着代码,我发现用文档来存储的话几乎写不下去?利用输入输出流来进行传输,如果用字符型ButteredWriter来写的话会把原来用户的密码覆盖掉;用ButteredOutputStream来写的话其带有一方法可在文件末尾续写,但这个类处理的是数据,又不可行,都是写到最后了才发现行不通,头晕哦!
      

  6.   

    LZ要在服务器端用文本文档存账户讯息对吧?
    用BufferedReader先把现有的内容读出来,然后把新的信息加上去然后再用BufferedWriter写回去……虽然是很麻烦但肯定能成……我以前就这么干过
      

  7.   

    这个希望对你有帮助
    public class InputTxt {
    public static void main(String args[]) throws Exception{
    /*
     * 此类的作用是为了将数据写入的文本文件中结尾
     */
    File file=new File("student.txt");
    //根据给定的文件名以及指示是否附加写入数据的 boolean true表示写道文件的最后 值来构造 FileWriter 对象。
    FileWriter fw=new FileWriter(file,true);
    Scanner sc=new Scanner(System.in);
    String ss=sc.next();//输入
    ss=ss+"\r";
    fw.write(ss.toCharArray());
    fw.flush();
    fw.close();
    sc.close();

    }}
      

  8.   

    噢,把文件就传输到FileWriter里,不要包装到BufferedWriter,的确可以解决这个问题,谢谢!
      

  9.   

    c/s架构,密码不保存在客户端把,是保存在服务端的数据库里,登陆的时候用socket把账号密码传到服务端判断,然后返回判断结果。。
      

  10.   

    是的,修改用户信息真的很麻烦,用xml文档可以处理这个问题,但是代码量很大,想着就后怕
      

  11.   

    既然只是个作业,那就直接每次都全部重写吧,也没啥想头了;反正数据规模肯定不大。把所有账户密码信息读取到HashMap中,Key就是帐户名,Value就是密码。需要更新或追加的,就直接操作HashMap,然后再把整个HashMap内容回写文件中。
      

  12.   

    噢,是啊,我当初怎么就没想到用HashMap来实现呢,它的特性正好吻合。
    我现在用MML来做,还没调试好,按道理应该能成功。
      

  13.   

    XML也行,半结构化数据,也很方便使用。此外还可以使用Apache的Configuration组件,把用户名密码当properties配置文件来使用。总之招数很多,选择你认为简便的,开发维护上高效的。