以下是示例文本文件:
布里斯班
03163012
澳大利亚
东京
041022200
日本
现在我想一起阅读三个数据然后放入不同的变量。然后再拿三个等等。
location = brisbane;
phoneNumber = 03163012;
country = Australia;
然后,传递给构造函数。
并且有一个最大位置= 10必须被读取
public boolean data()
{
boolean isValid = true;
boolean check = true;
int a = 0;
try
{
BufferedReader reader = new BufferedReader(newFileReader("location.txt"));
String data = reader.readLine();
while (data != null && check)
{
if (a != MAX_NUMBER)
{
for (int i = 0; i < 3; i++)
{
?????????
locations.add(newLocation);
a++;
}
else
check = false;
data =reader.readLine;
}
}
reader.close();
}
任何人都可以帮我这个。我不知道应该写什么? 提前谢谢
答案 0 :(得分:2)
你可能想要在你的for循环中使用这样的东西:
locations.add(data);
data = reader.readLine();
if(data!=null)
phoneNumber.add(data);
else
break;
data = reader.readLine();
if(data!=null)
country.add(data);
else
break;
a++;
您想要读取3行,然后添加到位置,然后添加phoneNumber,然后添加国家/地区。但是您的代码存在各种其他问题(例如错误的}
和newFileReader
)
答案 1 :(得分:2)
使用Guava的方法按行读取文件并将输出显示为List<String>
Files.readLines(java.io.File, java.nio.charset.Charset)
使用它将使您的代码看起来更简单,您将摆脱所有try-catch-finally
和文件缓冲区。
迭代该列表并将这些字符串用作变量:
location = brisbane;
phoneNumber = 03163012;
country = Australia;
迭代可以如下所示:
public static void main(String[] args) {
//it's you a mock
List<String> lines = new ArrayList<String>();
lines.add("a");
lines.add("1");
lines.add("aa");
lines.add("b");
lines.add("2");
lines.add("bb");
//Iterating String from file.
for (int i = 0; i < lines.size(); i += 3) {
String location = lines.get(i);
String phoneNumber = lines.get(i + 1);
String country = lines.get(i + 2);
//somehow use red variables
System.out.println(location);
System.out.println(phoneNumber);
System.out.println(country);
}
}
请注意,在上面的代码中我填写了我的列表,在阅读文件后填写您的填写。
答案 2 :(得分:0)
您需要的是另一个位置对象,因此您可以像这样存储您的值:
String data = reader.readLine();
int counter = 0;
MyLocation newLocation = null;
while (data != null && ((counter/3) != MAX_NUMBER)){
switch(counter % 3){
case 0:
newLocation = new MyLocation();
newLocation.setLocation(data);
break;
case 1:
newLocation.setPhone(data);
break;
case 2:
newLocation.setCountry(data);
locations.add(newLocation);
newLocation = null;
break;
}
counter++;
}
if(null != newLocation){
//Error management
}
MyLocation类将如下所示:
private String location = null;
private String phone = null;
private String country = null;
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}