使用 readLine 存储带有空格的 txt 文件中的数据
Storing data from txt file with whitespaces with readLine
我正在尝试编写一个代码,该代码从有关一个人的 txt 信息中读取并将其存储在变量中,然后使用这些变量创建联系人,然后将该联系人添加到 ArrayList。当我执行该程序时,它说它无法解析电子邮件,就像它试图将电子邮件存储为日期一样。有什么办法可以避免这种情况吗?
try
{
File file = new File(prop.getProperty("path"));
FileReader fr = new FileReader (file);
BufferedReader br = new BufferedReader(fr);
String name, lastName, mail;
Date birthDate;
String line;
while((line = br.readLine())!=null)
{
if (!line.trim().equals(""))
{
name = br.readLine();
lastName = br.readLine();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
birthDate = format.parse(br.readLine());
mail = br.readLine();
Contacto contacto = new Contacto(name, lastName, birthDate, mail);
gestor.addContact(contacto);
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
我也试过这个,但是它存储了两次联系人:
String birth;
while((name = br.readLine())!= null && (lastName = br.readLine())!= null && (birth = br.readLine())!= null && (mail = br.readLine())!= null)
{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
birthDate = format.parse(birth);
Contacto contacto = new Contacto(name, lastName, birthDate, mail);
gestor.addContact(contacto);
}
txt 文件的结构如下:
Name
LastName1 LastName2
1970-01-01
sample@mail.es
可以是这样的:
try {
File file = new File("/Users/soumyabratakole/test/test");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
String name=null;
String lastName1=null;
String lastName2=null;
Date birthDate=null;
String email=null;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
int i=0;
while ((line = br.readLine()) != null) {
if (!line.trim().equals("")){
int j =i%5;
i ++;
switch (j){
case 0:
name = line;
break;
case 1:
lastName1 = line;
break;
case 2:
lastName2 = line;
break;
case 3:
birthDate = format.parse(line);
break;
case 4:
email = line;
break;
}
if (j == 4){
System.out.println("Name: " + name + ", Lastname " + lastName1 + " " + lastName2 + ", BDay " + birthDate + ", Email " + email);
//Other operations
Contacto contacto = new Contacto(name, lastName1, birthDate, mail);
gestor.addContact(contacto);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
我正在尝试编写一个代码,该代码从有关一个人的 txt 信息中读取并将其存储在变量中,然后使用这些变量创建联系人,然后将该联系人添加到 ArrayList。当我执行该程序时,它说它无法解析电子邮件,就像它试图将电子邮件存储为日期一样。有什么办法可以避免这种情况吗?
try
{
File file = new File(prop.getProperty("path"));
FileReader fr = new FileReader (file);
BufferedReader br = new BufferedReader(fr);
String name, lastName, mail;
Date birthDate;
String line;
while((line = br.readLine())!=null)
{
if (!line.trim().equals(""))
{
name = br.readLine();
lastName = br.readLine();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
birthDate = format.parse(br.readLine());
mail = br.readLine();
Contacto contacto = new Contacto(name, lastName, birthDate, mail);
gestor.addContact(contacto);
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
我也试过这个,但是它存储了两次联系人:
String birth;
while((name = br.readLine())!= null && (lastName = br.readLine())!= null && (birth = br.readLine())!= null && (mail = br.readLine())!= null)
{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
birthDate = format.parse(birth);
Contacto contacto = new Contacto(name, lastName, birthDate, mail);
gestor.addContact(contacto);
}
txt 文件的结构如下:
Name
LastName1 LastName2
1970-01-01
sample@mail.es
可以是这样的:
try {
File file = new File("/Users/soumyabratakole/test/test");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line;
String name=null;
String lastName1=null;
String lastName2=null;
Date birthDate=null;
String email=null;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
int i=0;
while ((line = br.readLine()) != null) {
if (!line.trim().equals("")){
int j =i%5;
i ++;
switch (j){
case 0:
name = line;
break;
case 1:
lastName1 = line;
break;
case 2:
lastName2 = line;
break;
case 3:
birthDate = format.parse(line);
break;
case 4:
email = line;
break;
}
if (j == 4){
System.out.println("Name: " + name + ", Lastname " + lastName1 + " " + lastName2 + ", BDay " + birthDate + ", Email " + email);
//Other operations
Contacto contacto = new Contacto(name, lastName1, birthDate, mail);
gestor.addContact(contacto);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}