BufferedReader.readLine()读取第一行会出现bug,首行第一个字符会是一个空字符

 
  1. BufferedReader is =new BufferedReader(new InputStreamReader(new ileInputStream(file)));

  2. String str =is.readLine()

  3. char c = str.charAt(0);

这时你会发现并不是你文件第一行的首个字符,而是一个空字符(不是空字符串),但读取第二行就不会出现这问题。 

解决方法:就是把第一行的第一个字符去掉。

package userImpl;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;import entity.User;
import userDAO.useDAO;public class UseDAOImpl implements useDAO {List<User> list = new ArrayList<User>();//list.add,,,@Overridepublic List<User> queryUser() throws Exception {File file = new File("E:imformation.txt");String user = "";String psw = "";InputStreamReader reader;reader = new InputStreamReader(new FileInputStream(file));BufferedReader br = new BufferedReader(reader);//       user = br.readLine();
//      psw = br.readLine();
//
//      User u = new User(User.generateId(), user, psw);
//
//
//      //      while(true)
//      {
//          user = br.readLine();
//          psw = br.readLine();
//          if(user != null)
//          {
//              User u = new User(User.generateId(), user, psw);
//              list.add(u);
//          }
//          else
//          {
//              reader.close();
//              break;
//          }
//      }while(true){user = br.readLine();psw = br.readLine();if(user == null){//br.close();//reader.close();break;}else{if(list.size()==0){user = user.substring(1, user.length());}System.out.println("DAO里的长度"+user.length());//System.out.println(user.substring(1, user.length()));//System.out.println("DAO里的长度"+user.substring(1, user.length()).length());System.out.println("DAO里的长度"+psw.length());System.out.println("输出每个字符");for(int i=0;i<user.length();i++){System.out.println(user.charAt(i));}User u = new User(User.generateId(), user, psw);list.add(u);}}return list;}@Overridepublic List<User> addUser(User user) throws Exception {list.add(user);//先在容器中加,再打开文件,将对象读到文件中//   ../../WebContent/WEB-INF/imformation.txtFile file = new File("E:imformation.txt");PrintStream ps;ps = new PrintStream(new FileOutputStream(file));for (User user2 : list) {ps.println(user2.getName());ps.println(user2.getPassword());}//int i = 0;int size=list.size();System.out.println("USEDAOImplint size=list.size();"+size);ps.close();return list;}
}

BufferedReader.readLine()读取文件第一行会出现bug,首行第一个字符会是一个空字符相关推荐

  1. CFileDialog、CStdioFile读取文件中的内容,每行按空格依次读入

    CFileDialog.CStdioFile读取文件中的内容,每行按空格依次读入 注: 1.该文件为固定为3列的小数txt文件,且数字之间以空格隔开 2.CFileDialog 与 CStdioFil ...

  2. java多线程按行读取文件_“java”中多线程按行读取txt且每个线程读的内容不能重复,这么求“demo”?...

    展开全部 你把原来程序中直接读的地62616964757a686964616fe4b893e5b19e31333365646234方,改成调用上面的函数,由该函数统一读行.这样,不管是你有 N 个线程 ...

  3. python按行读取文件效率高吗_Python按行读取文件的实现方法【小文件和大文件读取】...

    本文实例讲述了Python按行读取文件的实现方法.分享给大家供大家参考,具体如下: 小文件: #coding=utf-8 #author: walker #date: 2013-12-30 #func ...

  4. python从第二行开始读取文件_python学习笔记—— 从第二行开始读文件

    原博文 2018-04-16 16:26 − filename = info.txtf = open('info.txt') next(f) for line in f: print(line)nex ...

  5. U盘读取文件时发现损坏,命令行修复

    这是我今天准备清理u盘的时候发现u盘好多文件出现这种损毁,后来知道是之前亲戚家小孩在我穿文件的时候插拔u盘了,emmm在网上查找了一下方法大部分都是推荐用系统的自己的u盘修复 修复步骤 1.win+r ...

  6. java 读取文件第一行代码,java文件读取。(单字节读取和按行读取读取)

    评论 # re: java文件读取.(单字节读取和按行读取读取) 2008-10-06 15:16 隔叶黄莺 再简单也比不过 groovy 的这一行代码 text = new File("f ...

  7. 用Java读取文件的5种方法-BufferedReader,FileInputStream,文件,扫描仪,RandomAccessFile

    There are many different ways to read a file in Java. In this tutorial, we will look into 5 differen ...

  8. java之的读取文件大全

    2019独角兽企业重金招聘Python工程师标准>>> java之的读取文件大全 使用java进行文件读写,因为使用的频率不高,加上写起来也没那么简单,经常容易忘记,然后就得去翻阅以 ...

  9. [Java]读取文件方法大全

    1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内容 4.随机读取文件内容 publicclassReadFromFile {     /**      * 以字节为单位读取文件,常用 ...

最新文章

  1. Tablayout 多个界面使用一个fragment 的实例
  2. 《数据分析实战:基于EXCEL和SPSS系列工具的实践》——3.3 耗时耗力的数据整理过程...
  3. Git005--工作区和暂存区
  4. 在Visual Studio 2010/2012中 找不到创建WebService的项目模板
  5. fusionsphere读音_hydroxyapatite
  6. Spring MVC+Mybatis 多数据源配置
  7. 毒霸网络版集成反间谍功能
  8. ajax长连接的具体实现,ajax实现服务器与浏览器长连接的功能
  9. SPSS问卷中的人口学变量是否要用?以及如何选用?【SPSS 065期】
  10. HTML设为首页/加入收藏代码
  11. RStudio 使用ARM版Ruby mac M1 编译安装适用及x86Ruby安装使用 安装ARM版homebrew
  12. Mob研究院 · BAT数据洞察报告
  13. 知识图谱-实体消歧(语义消歧)
  14. 以太坊生态缺陷导致的一起亿级代币盗窃大案
  15. 王叔叔用计算机,最潮养老 | 不服老的他比年轻人还惬意、还潮!
  16. space-around 和 space-evenly 的区别
  17. 容器服务ACK+容器网络文件系统CNFS快速搭建NGINX网站(体验有礼)
  18. RFC2616中文版
  19. vue项目权限:数据权限、菜单权限、按钮权限
  20. 基于tiny4412的Linux内核移植 -- 设备树的展开【转】

热门文章

  1. 用Python爬取英雄联盟所有皮肤~隔壁小孩羡慕的哭了
  2. JavaScript延迟执行 setTimeout()
  3. 软件在其他电脑运行出错:异常终止 问题事件名称CLR20r3
  4. c语言中命令行参数argc,argv[]详解
  5. 编程小石头点餐小程序_点餐小程序,点餐系统,管理后台批量导入excel菜品数据...
  6. java实现微信支付宝等多个支付平台合一的二维码支付(SSM框架)
  7. 存储卡插入电脑提示磁盘有写保护怎么办
  8. 热烈祝贺黄手艺冒菜景德镇市珠山区陶阳南路东
  9. python如何完成列表的排序_Python要如何实现列表排序的几种方法
  10. 第三届“先导杯”开赛,欢迎参与