如何根据字符串位置读取文件并将其存储在变量中

时间:2015-03-05 06:16:09

标签: java string file-io

我需要读取一个文件,完全拆分文件中的字符串并使用Java将其存储在变量中

见下面的例子,我的文本文件包含

devarajan        1000210         08754540275     600019      
ramesh           1000210         08754540275     600019      
udhay            1000210         08754540275     600019    

我累了使用字符串位置,但它没有用完。

请查找附件样本文件。此致

我的代码:

public class Program { 
     public static void main(String[] args) { 
        String line = "devarajan 1000210 08754540275 600019 "; 
        String[] words = line.split("\\W+"); 
        for (String word : words) {
                   System.out.println(word); 
                                  } 
                             }
                       }

输出:

devarajan 1000210 08754540276

我的文件将包含字符串10-10的位置,将名称20-30位置将是empid 30-40将电话号码。所以当我使用上一个片段时,我得到了空格" devarajan" " 1000210" ..我应该避免那些空格。

反过来,我的代码在遇到空格而不是位置时就会分裂 @Twelve,@ Kick:我为你的代码片段输出如下输出 但想象一下,如果我的名字前面有一个空格:"十二美元"而不是" twelvedollar",然后名称将被拆分并存储在不同的数组位置。这就是原因,我已经问过是否可以根据位置分割字符串

1 个答案:

答案 0 :(得分:0)

只有一种方法可以做到这一点..

try {
  Scanner inFile = new Scanner(new File("myInputFile.txt"));
  String[] data;
  ArrayList<String[]> arr = new ArrayList<String[]>();
  while (inFile.hasNext()) {
    data = inFile.nextLine().split("\\s+"); // or split("\t") if using tabs
    System.out.println(Arrays.toString(data));
    arr.add(data);
  }
}

catch (FileNotFoundException fe) {
  fe.printStackTrace();
}