2015-10-14 101 views
0

我想知道如何去阅读一个文件,并扫描每一行,但将每行的内容分隔成一个Char变量和一个Double变量。如何逐行阅读文本文件,并在Java中分隔每行的内容?

例子:

比方说,我们写打开文本文件“Sample.txt的”代码。要阅读的第一行,你会使用下面的代码:

while(fin.hasNext()) 
     { 

      try{ 

       inType2 = fin.next().charAt(0); 

       inAmount2 = fin.nextDouble(); 
      } 

此代码基本上说,如果有下一行,它会把下一个字符到inType2和下一个双入inAmount2。

如果什么如下我的txt文件写的是:

D 100.00 
E 54.54 
T 90.99 

我怎么会去阅读每一行,把“d”入字符变量,以及相应的双人或“100.00”,在这例如,进入它的Double变量。

我觉得我写的代码读取以下txt文件:根据变量类型

D 
100.00 
E 
54.54 
T 
90.99 

,如果您能为我提供了一个有效的方法来从文件中读取行,独立,我d非常感谢它。 Sample.txt将始终具有字符第一和二秒。

-Manny

+0

读取一行到'String',然后分裂的空白。 –

+0

如何将txt文件制作为csv,直到下一个\ n读取,然后通过逗号分割字符串并将数据解析为相应的类型 – KennethLJJ

+0

看看http://stackoverflow.com/questions/33104575/input -mismatch错误/ 33104835#33104835。按照帖子拆分后,转换为int数组,根据您的用例解析元素。 –

回答

1

使用BufferedReader读取行,然后拆分上的空白。

while((line=br.readLine())!=null){ 
    String[] arry = line.split("\\s+"); 
    inType2 = arry[0]; 
    inAmount2 = arry[1]; 
} 
0

您可以通过whitespace划定和

Scanner scanner = new Scanner(new File(".")); 
    while (scanner.hasNext()) { 

     //If both on different lines 
     c = scanner.next().charAt(0); 
     d = scanner.nextDouble(); 

     //if both on same line 
     String s = scanner.next(); 
     String[] splits = s.split("\\s+"); 
     if (splits.length == 2) { 
      c = splits[0].charAt(0); 
      d = Double.parseDouble(splits[1]); 
     } 
    } 
    scanner.close(); 
相关问题