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);
       }
  • 相关阅读:
    npm安装appium server路过的坑
    Android开发相关工具(eclipse篇)
    第一个nodejs程序
    淘宝密码(爬虫爬取淘宝美食的数据源码)
    jetbrains全系列可用例:IDEA、WebStorm、phpstorm、clion等激活到2099
    python爬虫快递查询系统(源码)
    python中利用上下文管理器来实现mysql数据库的封装
    关于js渲染网页时爬取数据的思路和全过程(附源码)
    python——mysql京东数据库设计案例(源码)
    pycharm安装mysql驱动包
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/6698418.html
Copyright © 2011-2022 走看看