首页 > 代码库 > Android 关于java.util.NoSuchElementException错误

Android 关于java.util.NoSuchElementException错误

写了一个从A文件复制到B文件的例子,其中要求去掉重复的行。

于是想到了Set,这本来是很容易的事情,结果在向外写数据时抱错

Java.util.NoSuchElementException

网络上反复查证也没有相关的内容,于是自己慢慢的找,终于找到了。下面写出这个错误的例子及分析,希望能及时的帮助和我同样犯了小错误的菜鸟!

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class Step01 { public static void main(String[] args) {  Set<String> set = new HashSet<String>();  File in = new File("Answer0712/aaa.txt");  File out = new File("Answer0712/bbb.txt");  InputStream is = null;  OutputStream os = null;  try {   is = new FileInputStream(in);   os = new FileOutputStream(out);   BufferedReader br = new BufferedReader(new InputStreamReader(is));   while (true) {    String str = br.readLine();    if (str == null)     break;    set.add(str);   }   // Iterator i = set.iterator();   // while(i.hasNext()){   // System.out.println("Null值判断:"+i.next());   // }   PrintWriter pw = new PrintWriter(new BufferedWriter(     new OutputStreamWriter(os)), true);   Iterator i = set.iterator();   while (i.hasNext()) {    System.out.println(i.next());  //这一句是罪魁祸首    pw.println(i.next());   }   pw.flush();  } catch (Exception e) {   e.printStackTrace();  } finally {   try {    is.close();    os.close();   } catch (IOException e) {    e.printStackTrace();   }  } }}

文章中标示黄色的那一句,本来是要打印出来,在控制台看看所写的数据是否正确。

结果就出现了java.util.NoSuchElementException的错误提示 ,就是黄色的那一句,多了一个 迭代器的next()。

所以错了。去掉它就好了,或者改为

while (i.hasNext()) {    String ss = (String) i.next();    System.out.println(ss);    pw.println(ss);   }

 

Android 关于java.util.NoSuchElementException错误