zoukankan      html  css  js  c++  java
  • 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);
       }
  • 相关阅读:
    Tampermonkey 油猴脚本开发 入门
    k8s 上安装 lamp 环境
    centOS 7.9 k8s 安装 和 基本命令
    力扣59-螺旋矩阵 II
    力扣54-螺旋矩阵
    力扣705-设计哈希集合
    力扣706-设计哈希映射
    scrapy参数-COOKIES_ENABLED
    优雅降级、渐进增强
    e-cahr的地图组件封装(浙江省为例)
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/6698418.html
Copyright © 2011-2022 走看看