要读的文件如下,名字叫3.txt。
3
Rajgarh, Rajasthan
75.38
28.63
Mbini, Equatorial Guinea
9.62
1.58
Divo, Ivory Coast
-5.37
5.85
第一行表明这个文件中有多少个样本,我要做的是用第一行的数据创建几个对象,然后从第二行开始读入数据,并把数据附给这几个对象。
现在就不知道该怎么样从第二行开始读?各位大侠帮帮忙吧!
------解决方案--------------------
Home > List of Packages > java.io [35 examples] > Reading and Writing [6 examples]
e35. Reading Text from a File
try {
BufferedReader in = new BufferedReader(new FileReader( "C:\\a.txt "));
String str;
int line = 0;
while ((str = in.readLine()) != null) {
line++;
if(line==1) continue;
// process(str);
}
in.close();
} catch (IOException e) {
}
------解决方案--------------------
public class City {
String name;
double latCord;
double longCord;
}
如果我要给3个对象赋值,没法在while循环里做,我需要用一个for循环,像这样
in.readLine(); //多读一行,就完了呗
for(int i=1; i <cityNum+1; i++){
cities[i].name = in.readLine();
cities[i].latCord = Double.parseDouble(in.readLine());
cities[i].longCord = Double.parseDouble(in.readLine());
}
------解决方案--------------------
public class BufferedReaderTest
{
public static void main(String[] args)
{
/**
* 3.txt
* 3
* Rajgarh, Rajasthan
* 75.38
* 28.63
* Mbini, Equatorial Guinea
* 9.62
* 1.58
* Divo, Ivory Coast
* -5.37
* 5.85
*/
try
{
BufferedReader reader = new BufferedReader(new FileReader( "C:\\3.txt "));
String readline = reader.readLine();
int length = Integer.parseInt(readline);
City[] citys = new City[length];
while(length > 0)
{
String name = reader.readLine();
double latCord = Double.parseDouble(reader.readLine());
double longCord = Double.parseDouble(reader.readLine());
citys[citys.length - length] = new City(name, latCord, longCord);
length--;
}
reader.close();
for(City c : citys)
{
System.out.println(c);
}
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
System.err.println( "文件内容缺失!!! ");
}
}
}
class City {
String name;
double latCord;
double longCord;
public City(String name, double latCord, double longCord)
{
this.name = name;
this.latCord = latCord;
this.longCord = longCord;
}
public String toString()
{
return "name= " + name
+ ",latCord= " + latCord
+ ",longCord= " + longCord;