有没有一种方法可以在Java中使用Filewriter打开不同的文本文件

时间:2019-11-29 15:51:08

标签: java netbeans

我希望基本上以这种方式对filewriter进行编码,以便可以调用相同的方法将数据写入不同的文本文件。 例如,如果我有一个管理员,经理和供应商,我想为他们所有人调用相同的方法,但是有不同的文本文件。

p.s //很抱歉让我感到困惑,只是我在理解这种语言时遇到很多困难,而我们的讲师对我完全没有帮助。

package catalogue;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

public class UserDetails {
public String userID;

public String name, address,emailID,role,username,password;

public void write(String id,String name,String add,String email,String role,String un,String pass)
{
    this.userID = id;
    this.name = name;
    this.address = add;
    this.emailID = email;
    this.role = role;
    this.username = un;
    this.password = pass;
FileWriter fw;       
try{
 fw =  new FileWriter("userdetails.txt",true);
 fw.write(un+"|");
 fw.write(pass+"|");     
 fw.write(id+"|");
 fw.write(name+"|" ); 
 fw.write(email+"|");
 fw.write(role+"|");
 fw.write(add+"|");
 fw.write(System.getProperty("line.separator"));
 fw.close();
} 
     catch (IOException ex) 
    {
        Logger.getLogger(UserDetails.class.getName()).log(Level.SEVERE, null, ex);
    }

}

2 个答案:

答案 0 :(得分:0)

该文件以字符串形式提供给FileWriter;在您的示例“ userdetails.txt”中。
如果要写入其他文件,只需更改该字符串即可。
您可以将文件名添加到write()方法中,即

public void write(String fileName,String id,String name,String add,String email,String role,String un,String pass)
{
    ...
    FileWriter fw;       
    try{
        fw =  new FileWriter(fileName,true);
        ...
    } 
    catch (IOException ex) 
    {
        Logger.getLogger(UserDetails.class.getName()).log(Level.SEVERE, null, ex);
    }
}

答案 1 :(得分:0)

您可以再加上一个参数role,如下所示:

public void write(String id,String name,String add,String email,String role,String un,String pass, String role)

然后在该方法内部,您可以根据role的值创建具有不同名称的文件,例如

if("admin".equals(role)){
    fw =  new FileWriter("filename-for-admin.txt",true);
} else if("manager".equals(role)){
    fw =  new FileWriter("filename-for-manager.txt",true);
} else if("supplier".equals(role)){
    fw =  new FileWriter("filename-for-supplier.txt",true);
}