今天偶然用到BufferedReader,在读取文本后输出数据的时候遇到了隔行输出的问题. 如: 床前明月光 疑是地上霜 123456 789789 输出的为:疑是地上霜789789 找了一下,最终找到了一个问题 我在代码里调用了两次ReadLine方法,但是此方法调用一次他就会自动读取下一行. So...此文章用来记录这个坑,愿新手不犯这个低级错误.…
程序很简单,客户段从控制台读取用户输入,然后发送至服务器端,主要代码如下 服务端代码: 客户端代码: 结果运行的时候,当开启服务端和客户端后,在客户端的控制台 键盘输入 内容,服务端却没有显示内容 原因: 1.原来readLine()方法在进行读取一行时,只有遇到回车(\r)或者换行符(\n)才会返回读取结果,这就是"读取一行的意思",重要的是readLine()返回的读取内容中并不包含换行符或者回车符: 2.由于在客户端使用的readLine()来读取用户输入,所以当用户按下回车键是…
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /* * 使用bufferedReader + BufferedWriter的特殊方法 * newLine():添加系统默认的换行符 * readLine():自动读取一行文本 * 需求:复制一个文本中的内容 *…
BufferedReader的readLine()方法是阻塞式的, 如果到达流末尾, 就返回null, 但如果client的socket末经关闭就销毁, 则会产生IO异常. 正常的方法就是使用socket.close()关闭不需要的socket. 从一个有若干行的文件中依次读取各行,处理后输出,如果用以下方法,则会出现除第一行外行首字符丢失现象. String str  = null;br=new BufferedReader(new FileReader(fileName));do{  str…
BufferedReader的readLine()方法是阻塞式的, 如果到达流末尾, 就返回null, 但如果client的socket末经关闭就销毁, 则会产生IO异常. 正常的方法就是使用socket.close()关闭不需要的socket. 从一个有若干行的文件中依次读取各行,处理后输出,如果用以下方法,则会出现除第一行外行首字符丢失现象 String str  = null;br=new BufferedReader(new FileReader(fileName));do{  str…
最近了解了关于JavaJNI接口的一些关于方法注册与签名相关的知识,在此进行一下总结. 使用JNI接口时,我们首先需要把Java方法声明为native: public native void f(); 然后编写对应的C/C++代码,并编译成为动态链接库(.dll或.so),在调用Java方法前载入动态链接库即可调用: static { System.loadLibrary("native-lib"); } 那么,Java文件中的native方法是如何与native文件中的方法一一对应的…
目标:读文件 编程时,有很多时候需要读取本地文件,下面介绍一下读取方式: 读单行文件 package com; import java.io.*; import java.util.ArrayList; import java.util.List; import javax.print.DocFlavor.CHAR_ARRAY; import com.google.common.primitives.Chars; /* 1.首先创建FileReader对象 2.将FileReader传递给Buf…
今天在使用java对IO操作时,readLine()输出到控制台的行少了很多.后来发现readLine()实际上是一次读取一行.如果我们不话readLine()读取的行内容赋给一个字符串的话,每直接调用一次readLine()方法,实际上就是往下读一行.最后你会发现它变成了隔行读取. 下面两段代码中.直接system.out.println(br.readLine()),实际上就是输出的while循环后的下一行.当我们将readLine()的结果赋值给一个变量是,输出的是变量的内容而没有再次调用…
1. 用Reader模拟BufferedReader的readLine()功能:   readLine():一次读取一行,根据换行符判断是否结束,只返回内容,不返回换行符 2. 代码实现和思路分析: package cn.itcast_08; import java.io.IOException; import java.io.Reader; /* * 用Reader模拟BufferedReader的readLine()功能 * * readLine():一次读取一行,根据换行符判断是否结束,只…
有以下代码:    BufferedReader localReader = new BufferedReader(new InputStreamReader(System.in)); String msg=null; System.out.println("out of while loop!"); while((msg=localReader.readLine())!=null){ System.out.println(msg) if(msg.equals("bye&qu…
readline()方法有一个隐含的bug,它不一定会把一个回车看作行的结束.相反,readline()只识别换行或回车/换行对.当在流中检测到回车时,readline()会在继续之前等待,查看下一个字符是否为换行.如果是换行,就抛掉回车和换行,把这一行作为String返回.如果不是换行,就抛掉回车,把这一行作为String返回,这个额外的字符会作为下一行的一部分读取.但是,如果回车是流的最后一个字符(如果流由Macintosh或者Macintosh创建的文本所生成,就很有可能发生这种情况),那…
在最近的小项目中,单片机中断优先级的问题,串口发送到上位机的数据有时会出现发送的数据被中断打断的问题. 于是,在上位机机上就容易出现错误,原来读取的方法是read()的方法,反复修改发送数据的格式依然没有好转. 后来讲将上位机的读取方式换成readline()问题得到了解决,且百发百中,问题可能归结于readline方法自身的特性吧. readline会一直在那里等候,知道接收到换行符"\r\n",所以在没有接收到完整数据时,会一直在那里等候数据的到来,不离不弃. 即便下位机的数据发送…
描述 Python 文件 readline() 方法用于从文件读取整行,包括 "\n" 字符.如果指定了一个非负数的参数,则返回指定大小的字符数,包括 "\n" 字符. 语法 readline() 方法语法如下: fileObject.readline([size]) 参数 size -- 从文件中读取的字符数. 返回值 返回从字符串中读取的字符. 实例 以下实例演示了 readline() 方法的使用: 文件 runoob.txt 的内容如下: 这是第一行 这是第…
概述 readline() 方法用于从文件读取整行,包括 "\n" 字符.如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符.高佣联盟 www.cgewang.com 语法 readline() 方法语法如下: fileObject.readline(size) 参数 size -- 从文件中读取的字节数. 返回值 返回从字符串中读取的字节. 实例 以下实例演示了 readline() 方法的使用: 文件 runoob.txt 的内容如下: 1…
控制台输入字符串之后回车,后台接收传来的字符串,代码如下: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ReadLineDemo { public static void main(String[] args) { // System.in是获取键盘输入的值 // InputStreamReader将字节流转为字符流 转为Buff…
实现与目标对象相同的接口     BufferedReader 定义一个变量记住目标对象 定义一个构造器接收被增强对象 覆盖需要增强的方法 对于不想增强的方法,直接调用目标对象的方法. package cn.liuning.demo; import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; /* 1.实现与目标对象相同的接口 BufferedReader 2.定义一个变量记住目标对象 3.…
定义一个类,实现与被增强对象相同的接口,或继承这个类,视情况而定 定义一个变量,记住被增强的对象 定义一个构造函数,接收被增强的对象 覆盖要增强的方法 对于不需要增强的方法,调用被增强对象原有的方法 包装加强类 package com.henau.baozhuang; import java.io.BufferedReader; import java.io.IOException; public class MyBufferedReader extends BufferedReader { p…
不多说,直接上干货! 把提高效率的动作,封装成一个对象.即把缓冲区封装成一个对象. 就是在一个类里封装一个数组,能对流锁操作数据进行缓存. 什么是字符流缓冲区? 善于使用字符流缓冲区,减轻负担,提高下效率. 其实啊,无非是将源中数据,存储到自定义数组里,进行缓存.并对数组操作,从而提高效率. 即BufferedReader 比 FileReader要增强.   BufferedWriter 比 FileWriter要增强. 什么情况下需要使用字符流缓冲区? 先从一个例子,来由浅入深的 为了提高写…
通常,读文本我们会使用BufferedReader,它装饰或者说管理了InputStreamReader,同时提供readLine()简化了我们对文本行的读取.就像从流水线上获取产品一样,每当取完一件后,它自动准备好下一件并等待我们获取,一直到全部取完结束.所以我们的目标就是希望也能管理poi并提供一个readLine()一样的方法来读取Excel. 1.先来看一个有点类似Excel读取的文本需求:读取一类文本文件,文中每行内容由若干字段组成,这些字段由约定好的分隔符来分割.说它类似Excel的…
最近,同学做实验的时候,在读取服务器端返回的时候,使用了BufferedReader类的readLine,他是这么写的,while(reader.ready()) {//执行读取操作,即readLine }这个方法很经常被用到, 但是返回的却都是空,这是什么原因呢,查看了一下帮助文档,以及上网查了查,总结如下: ready是查看流是否已经准备好被读,是一个非阻塞的方法,所以会立刻返回,由于服务器没有准备好被读,所以会立刻返回,所以读取到的都是null,那么我们用while((str = read…
在做 Largest Number 这道题之前,我对 sort 方法的用法是非常自信的.我很清楚不传比较因子的排序会根据元素字典序(字符串的UNICODE码位点)来排,如果要根据大小排序,需要传入一个比较函数. 先来看这道题,给你一个数组,让你把数组元素拼接起来,求能拼得的最大的数.如果只有两个数字 a 和 b,如何拼?很明显比较 ab 和 ba 两个数的大小,所以这道题首先需要对数组做一次排序.刷刷写下如下代码: nums.sort(function(a, b) { return (b + '…
Jquery中val方法使用 val()// 取得第一个匹配元素的当前值 val(val)// 设置所有匹配元素的值 val([val1, val2])// 设置多选的checkbox.多选select的值(这是一个坑) <input type="checkbox" value="basketball" name="hobby">篮球 <input type="checkbox" value="fo…
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(ksmgVo.getFiledata()), "utf-8")); while(br.ready()){ String line = br.readLine(); //readLine读取第一行会有bug,第一个字符为空字符 char c = line.charAt(0); if(c==65279) { //65279是空字符…
最近在项目中遇到了一个问题,由一个对象序列化的结构,在反序列化时一直提示失败,真的百思不得其解啊.在对问题排查了好久之后,才发现是这个序列化的对象中的list调用了ArrayList的sublist方法存入导致的问题,真的是满满的坑,sublist还是要慎重使用的啊,下面详细介绍下sublist. 以下内容转自:ArrayList的subList方法 List接口中定义: List<E> subList(int fromIndex, int toIndex); 英文注释: Returns a…
今天遇到一件怪事,用一个ArrayList添加了一个对象,再调用ArrayList的remove方法删除该对象,当然这时对象是数据库里查出来的,但内容绝对是一样,却发现remove失败了.演示一下,这里用了自定义的Merchant对象,测试时只需随便自定义一个对象即可: public static void main(String[] args) { List<Merchant> merchants = new ArrayList<>(); Merchant merchant =…
List<string[]> list = File.ReadLines("YourFile.txt") .Select(r => r.TrimEnd('#')) .Select(line => line.Split(',')) .ToList(); or List<string[]> list = File.ReadLines("YourFile.txt") .Select(r => r.TrimEnd('#').Spli…
w3c相关文档:http://www.w3school.com.cn/jsref/jsref_splice.asp bug:购物车计算价格的时候.加商品没问题,减商品的时候价格总是计算错误. 经排查发现在减商品计算总价的时候调用了splice方法,导致正在循环的数组发生了改变,价格计算错误. 修改方法:总价计算完成的时候再操作数组. 上代码: //错误代码 $.each(categoryJson.shop_cart_consume,function (i,prodItem) { //S_IS_N…
昨天写了个小例子,覆盖hashCode.equals进行集合set的一些特性测试,代码如下: class Test3 { public int c; public Test3(int c) {this.c = c;} public int hashCode() {return c;} public boolean equals(Object obj) {return (this.c == ((Test3) obj).c);} } 以上代码非常简单,希望使用类变量c的值作为hashcode,但是始…
常用方法 int read(byte[] b) 从包含的输入流中读取一定数量的字节,并将它们存储到缓冲区数组 b 中. int read(byte[] b, int off, int len) 从包含的输入流中将最多 len 个字节读入一个 byte 数组中. boolean readBoolean() 从包含的输入流中读取的 boolean 值的字节 byte readByte() 此输入流的下一个字节,以有符号 8 位 byte 的形式表示. char readChar() 此输入流的下两个…