读取文件并用Java分割行。

时间:2013-12-30 14:57:24

标签: java text file-io split

你好,我想读一个包含这样的单词对的文件file.txt ......

mot;word 
oui;yes
utiliser;use
comment;how

在阅读这个file.txt后,我想拆分这个文本,把法语单词放在一个ArrayList中,将英文单词放在另一个ArrayList中。

提前致谢...

4 个答案:

答案 0 :(得分:8)

public static void main(String[] args) {
    List<String> list = new ArrayList<String>(); 
    List<String> frenchList = new ArrayList<String>();
    List<String> englishList = new ArrayList<String>();
    File file = new File("C:/dico.txt");
    if(file.exists()){
        try { 
            list = Files.readAllLines(file.toPath(),Charset.defaultCharset());
        } catch (IOException ex) {
            ex.printStackTrace();
        }
      if(list.isEmpty())
          return;
    }
    for(String line : list){
        String [] res = line.split(";");
        frenchList.add(res[0]);
        englishList.add(res[1]);
    }
}

使用此代码,您可以在“frenchlist”列表中使用de french word,并在列表“englishlist”中使用英语单词

答案 1 :(得分:2)

这看起来像CSV文件。考虑使用CSV阅读器库。

使用JDK中的String#split函数并逐行读取文件Scanner

Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
  String line = scanner.nextLine();
  // process the line using String#split function
}

while循环中,将拆分的数据添加到ArrayList

所有信息都已在stackoverflow上。

答案 2 :(得分:1)

首先,你必须创建两个数组列表..

    ArrayList<String> english = new ArrayList<>();
    ArrayList<String> french = new ArrayList<>();

然后,打开文件,逐行阅读,将其拆分为&#34;;&#34;并将这些单词添加到ArrayLists ...

    try(BufferedReader in = new BufferedReader(new FileReader("file.txt"))){
      String line;
      while((line = in.readLine())!=null){
          String[] pair = line.split(";");
          french.add(pair[0]);
          english.add(pair[1]);
      }
    }

答案 3 :(得分:0)

mot;word 
oui;yes
utiliser;use
comment;how

看来每行的结构都是

frenchWord;englishWord

因此,您可以使用Scanner(使用构造函数Scanner(File source))和nextLine()方法阅读文件的每一行,并split每行{{1 }}

数组中的第一个元素是法语单词,第二个元素是英语单词。

将这些元素添加到两个单独的List(每个示例ArrayList)中,一个包含所有法语单词,另一个包含英语单词。