读文本问题?

Runningboy007 2005-06-07 10:04:08
提前声明本人刚开始学java,所以问题可能比较菜,大家多包涵吧.
问题是这样的.
我要做一个登陆程序,用户名和密码要从txt文件中读取.
在txt中的存储格式是这样的.
user1,password1
user2,password2
.
.
我想从txt文件读出用户名,密码分别赋值给变量user 和password?
我有两种大体思路,但不知道是否可行,和具体怎么实现.
1:读文件时就,分别读出用户名,密码分别赋值给变量user 和password
2:有readline读出一行,然后,使用字符串操作将其分开.(把","看作分隔符)
请大家指教,最好给出关键代码.

谢谢
...全文
75 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Runningboy007 2005-06-08
  • 打赏
  • 举报
回复
小弟明白了
谢谢各位了
ses127127 2005-06-07
  • 打赏
  • 举报
回复
用.property和.properties都可以,一般习惯上是用.properties的比较多
medusagjf 2005-06-07
  • 打赏
  • 举报
回复
再贴一便,上面有个地方错了
register.property文件如下:
user1=aaa
user2=bbb
pwd1=111
pwd2=222

ReadPropertyFromFile.java源文件如下:

import java.io.InputStream;
import java.util.Properties;

class ReadPropertyFromFile{
public static void main(String[] args){
new ReadPropertyFromFile();
}

ReadPropertyFromFile(){
String user1=" ";
String user2=" ";
String pwd1=" ";
String pwd2=" ";
try{
InputStream is = getClass().getResourceAsStream("register.property");
Properties getRegister=new Properties();
getRegister.load(is);
user1=getRegister.getProperty("user1");
user2=getRegister.getProperty("user2");
pwd1=getRegister.getProperty("pwd1");
pwd2=getRegister.getProperty("pwd2");
}catch(Exception e){
e.printStackTrace();
}
System.out.println (user1);
System.out.println (user2);
System.out.println (pwd1);
System.out.println (pwd2);
}
}
medusagjf 2005-06-07
  • 打赏
  • 举报
回复
不好意思,配置文件应该叫register.property
medusagjf 2005-06-07
  • 打赏
  • 举报
回复
才10分啊,好象太少了吧?
register.properties文件如下:
user1=aaa
user2=bbb
pwd1=111
pwd2=222

ReadPropertyFromFile.java源文件如下:

import java.io.InputStream;
import java.util.Properties;

class ReadPropertyFromFile{
public static void main(String[] args){
new ReadPropertyFromFile();
}

ReadPropertyFromFile(){
String user1=" ";
String user2=" ";
String pwd1=" ";
String pwd2=" ";
try{
InputStream is = getClass().getResourceAsStream("register.property");
Properties getRegister=new Properties();
getFamily.load(is);
user1=getRegister.getProperty("user1");
user2=getRegister.getProperty("user2");
pwd1=getRegister.getProperty("pwd1");
pwd2=getRegister.getProperty("pwd2");
}catch(Exception e){
e.printStackTrace();
}
System.out.println (user1);
System.out.println (user2);
System.out.println (pwd1);
System.out.println (pwd2);
}
}
Runningboy007 2005-06-07
  • 打赏
  • 举报
回复
to:ses 你这种方法具体怎么做啊?
同求上面的方法
我想多学一些.
^_^
ses127127 2005-06-07
  • 打赏
  • 举报
回复
我觉得你这样做不是很好,一般在java中是把这些信息放在属性文件(.properties)中,你就可以从属性文件中读取你所需要的信息.
autumn200005 2005-06-07
  • 打赏
  • 举报
回复
test.properties文件如下:
name=leo
password=12345


程序如下:

String file="test.properties";
String name="name";
String psw="password";

ResourceBundle rb = ResourceBundle.getBundle(file);
String n=rb.getString(name);
String p=rb.getString(psw);

System.out.println("name:"+n);
System.out.println("password:"+p);
chendequan 2005-06-07
  • 打赏
  • 举报
回复
不好意思,看错了,你的第二个程序正确!
chendequan 2005-06-07
  • 打赏
  • 举报
回复
那为兄台提出的采用Property文件未尝不是个办法!这样你就省去了进行文件分隔的麻烦!
但是我觉得这两种方法都有一定的缺陷!

采用分隔符的话就会产生如果用户名中有和分隔符相同的字符就会发生读取错误!
采用Property文件的话如果出现同名的用户名,会只能找到最后一个用户名!
这肯定都不是不希望的!

可以采用XML文件来进行存储!然后对XML文件进行解析!

<user id="001">
<name>name1</name>
<pass>pass1</pass>
</user>
<user id="002">
<name>name2</name>
<pass>pass2</pass>
</user>
chendequan 2005-06-07
  • 打赏
  • 举报
回复
你的第二个程序可能写的不对
String sLine;
while((sLine = br.readLine)!= null) {
在这里对sLine进行分割!
分别读出用户名和密码!
}
Runningboy007 2005-06-07
  • 打赏
  • 举报
回复
我用第二种思路做的,用split分割字符串
boolean found=false;

FileReader fr=new FileReader("t.txt");
BufferedReader br=new BufferedReader(fr);
String Line=br.readLine();
while(Line!=null&&!found)
{
String[] ss=Line.split(",");
if(ss[0].equals(user)&&ss[1].equals(password))
found=true;
Line=br.readLine();
}
谢谢各位了
10分是少点 多多包涵吧
谁让我是菜鸟那
还有其他方法马?

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧