-1

我想从文本文件中读取一些数据。例如:

1 // 总共 1 个客户端数据

192.168.1.116;pc3;/home/pc3/Documents;C:/user/windows/Desktop; // 客户端数据的详细信息。

这是我的代码:

String strLine;
String [] values = new String[4];
int counter = 0;
int clientCounter = 0;
//Read File Line By Line
while ((strLine = br.readLine()) != null)   
{
// Print the content on the console
String delims = ";";
String[] tokens = strLine.split(delims);
if(counter == 0)//Reading total clients
{                       
    totalClient = Integer.parseInt(tokens[0]);
    counter++;
}
else
{   
for (int i = 0; i < tokens.length; i++)
{
values[i] = tokens[i];  
}
dc = new DisplayClient(clientCounter,values[0],values[1]," ",values[2],values[3]);
clientList.add(dc);

但现在我需要阅读的文件几乎没有分隔符。例如:

0:1,0.5,2,0.7,3,0.2; // 7 项

1:0,0.5,7,1;//5 项

2:0,0.7;// 3 项

我正在使用这些数据来创建 p2p 模拟。

2:0,0.7;//表示节点2连接到节点0,带宽为700kbps

1:0,0.5,7,1;//表示节点1以500kbps连接到节点0,节点1也以1000kbps(1mbps)连接到节点7。

但现在它有 3 个分隔符,节点的项目可能是静态的。它可能是 3 个项目或 5 个项目或 7 个项目或可能更多。我怎样才能阅读这个并让每个数据用分隔符区分?

抱歉我的无知,并提前感谢您的帮助。

4

2 回答 2

1

我会试试这个:

  1. 每行保留一个路由,但删除分号。
  2. 用逗号和冒号而不是分号分隔路由。
  3. 加载第一个 int (它是你的源节点)
  4. 迭代加载您的下一对整数(它们是您的目标节点和速度)。
于 2012-11-30T15:04:42.210 回答
1

我会以不同的方式表示数据:

1:0,0.5;7,1;n,s;.......

1.拆分“:”上的行并将源节点设置为数组的第一个元素。

2.用“;”分割第二个条目 并遍历结果数组,每个条目将代表一个节点,对于每个条目,您可以将其拆分为“,”并获取节点编号和速度。

3.对于每个源节点,您现在拥有所有连接的节点及其速度,无论其数量多少。

于 2012-11-30T15:14:44.660 回答