在做一个解析pacp文件的时候需要读取文件中的每个属性,但是每次读出来的内容的每一行的第一个字符都被吞掉了,找了半天不知道为什么,后来看到在读取的时候用的read()方法,而且返回值是int类型,在变量初始化的时候默认应该是0,可能就这样把第一个给吞了(还是象不太清楚),read只会读取一个字节 不会自动读取下一个 只会读第一个字节 和指针不是一回事,但是如果使用readLine()函数就不会出现这种情况了,

当然这只是在使用inputStream的时候会出现这种情况,如果直接使用FileReader则这种问题就不会出现,使用read同样会把第一个字符读入,也可能是buffer在作怪,而且可能性很大,如果不使用buffer直接用FIleReader也是可以完全读入的,但是如果是使用buffer,并且使用int 返回值的read,那么必然会产生吞掉第一个字符的后果,具体代码贴出,如下:

 1 package com.zaj;
2
3 import java.io.BufferedReader;
4 import java.io.BufferedWriter;
5 import java.io.FileReader;
6 import java.io.FileWriter;
7 import java.io.IOException;
8
9 public class ReadLine {
10
11
12 public static void readline(String file, String writerfile) {
13 try {
14 FileReader fr = new FileReader(file);
15 BufferedReader br = new BufferedReader(fr);
16 FileWriter fw = new FileWriter(writerfile); // 写文件操作,把得到的file对应的文件中内容写入,writerfile中去。
17 //System.out.println(fw.getEncoding());//utf-8默认
18 BufferedWriter bw = new BufferedWriter(fw);
19
20 String readoneline;
21 int l;
22 while ((l = br.read()) != -1) {  //此时会产生吞掉第一个字符的后果
23 readoneline = new String(br.readLine().getBytes(),"utf-8");
24 //System.out.println(readoneline);
25
26 /*String l;
27 while ((l = br.readLine()) != null) {  //若使用readLine()则毫发无损
28 readoneline = new String(br.readLine().getBytes(),"utf-8");
29 //System.out.println(readoneline);
30 */
31 bw.write(readoneline);
32 bw.newLine();
33 System.out.println(readoneline);
34 }
35 bw.flush();
36 br.close();
37 bw.close();
38 br.close();
39 fw.close();
40 fr.close();
41 } catch (IOException e) {
42 e.printStackTrace();
43 }
44 }
45
46 public static void main(String[] args) {
47 readline("D:\\TDDOWNLOAD\\test\\packWifi.pcap", "D:\\TDDOWNLOAD\\test\\packWifi.txt");
48 }
49 }

bufferedReader 读取文件第一行第一个字符丢失问题的更多相关文章

  1. 如何设置textarea光标默认为第一行第一个字符

    判断文本区是否有内容,如果没有那么光标肯定是在第一行第一个为止的,记住,空格回车也算是有内容在的,也会影响光标的位置

  2. matlab文件读写处理实例(三)——读取文件特定行

    (1) 读取文件特定行 CODE: ; ;        if nline==line               fprintf(fidout,'%s\n',tline);         data ...

  3. 使用Perl批量读取文件最后行

    使用Perl批量读取文件最后行 面对成百上千个文件,有时我们需要查看它的最后行,单个文件打开将耗费大量时间,而通过Perl提取出最后行,将快速的帮助我们处理繁琐的事务. 特性 整个目录完全遍历,自动提 ...

  4. python读取文件指定行内容

    python读取文件指定行内容 import linecache text=linecache.getline(r'C:\Users\Administrator\Desktop\SourceCodeo ...

  5. python3读取文件指定行的三种方案

    技术背景 考虑到深度学习领域中的数据规模一般都比较大,尤其是训练集,这个限制条件对应到实际编程中就意味着,我们很有可能无法将整个数据文件的内容全部都加载到内存中.那么就需要一些特殊的处理方式,比如:创 ...

  6. java 读取文件——按照行取出(使用BufferedReader和一次将数据保存到内存两种实现方式)

    1.实现目标 读取文件,将文件中的数据一行行的取出. 2.代码实现 1).方式1: 通过BufferedReader的readLine()方法. /** * 功能:Java读取txt文件的内容 步骤: ...

  7. python处理文件---每行末尾加上字符

    题记:该代码是项目中需要处理一个文件,所以使用python去处理,还有另外一个方法就是使用notepad++的正则替换,这里就只是使用python脚本去处理了. 我想只要你懂一门语言,就很容易处理这个 ...

  8. Linux shell sed命令在文件行首行尾添加字符

    昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.f ...

  9. BufferedReader 使用 readLine() 读取 UTF-8 格式的文本第一行第一个字符是空字符的解决办法

    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(ksmgVo.getFiledata( ...

随机推荐

  1. myeclipse操作hdfs

    myeclipse与hadoop集成我就不说了,还是简单说两句吧! 1.hadoop搭建完毕且可以正常访问(Linux搭建的集群环境 主机是windos) 2.在主机上将hadoop包解压 3.通过m ...

  2. String源码浅析

    如果问你,开发过程中用的最多的类是哪个?你可能回答是HashMap,一个原因就是HashMap的使用量的确很多,还有就是HashMap的内容在面试中经常被问起. 但是在开发过程中使用最多的类其实并不是 ...

  3. Vue 下拉刷新及无限加载组件

    原文  https://github.com/wangdahoo/vue-scroller 主题 Vue.js Vue Scroller Vue Scroller is a foundational ...

  4. Vue 事件的高级使用方法

    Vue 事件的高级使用方法 事件方法 在Vue中提供了4中事件监听方法,分别是: $on(event: string | Array, fn) $emit(event: string) $once(e ...

  5. 内存管理初始化源码1:setup_arch

    源码声明:基于Linux kernel 3.08 1. 在kernel/arch/mips/kernel/head.S中会做一些特定硬件相关的初始化,然后会调用内核启动函数:start_kernel: ...

  6. linux定时删除过期文件

    需求说明 每日凌晨0点定时删除/temp目录下的所有一个月未被访问的文件. 脚本实现 linux 终端输入crontab -e,添加定时任务脚本命令 [root@localhost ~]# cront ...

  7. URL及日期等特殊数据格式处理-JSON框架Jackson精解第2篇

    Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制.它提供了很 ...

  8. Spring Boot实战之Redis缓存登录验证码

    1.工具类 1 import lombok.experimental.UtilityClass; 2 3 import java.awt.*; 4 import java.awt.image.Buff ...

  9. 3.ConcurrentMap-并发Map

  10. 2019.8.14 sdfzoier

    zhaojinxi wxk: lixf zhangtingyu wu jialin zhangjinhao liuxinyang zhoukaixuan