使用readLine()方法遇到的坑】的更多相关文章

今天偶然用到BufferedReader,在读取文本后输出数据的时候遇到了隔行输出的问题. 如: 床前明月光 疑是地上霜 123456 789789 输出的为:疑是地上霜789789 找了一下,最终找到了一个问题 我在代码里调用了两次ReadLine方法,但是此方法调用一次他就会自动读取下一行. So...此文章用来记录这个坑,愿新手不犯这个低级错误.…
程序很简单,客户段从控制台读取用户输入,然后发送至服务器端,主要代码如下 服务端代码: 客户端代码: 结果运行的时候,当开启服务端和客户端后,在客户端的控制台 键盘输入 内容,服务端却没有显示内容 原因: 1.原来readLine()方法在进行读取一行时,只有遇到回车(\r)或者换行符(\n)才会返回读取结果,这就是"读取一行的意思",重要的是readLine()返回的读取内容中并不包含换行符或者回车符: 2.由于在客户端使用的readLine()来读取用户输入,所以当用户按下回车键是…
今天在使用java对IO操作时,readLine()输出到控制台的行少了很多.后来发现readLine()实际上是一次读取一行.如果我们不话readLine()读取的行内容赋给一个字符串的话,每直接调用一次readLine()方法,实际上就是往下读一行.最后你会发现它变成了隔行读取. 下面两段代码中.直接system.out.println(br.readLine()),实际上就是输出的while循环后的下一行.当我们将readLine()的结果赋值给一个变量是,输出的是变量的内容而没有再次调用…
readline()方法有一个隐含的bug,它不一定会把一个回车看作行的结束.相反,readline()只识别换行或回车/换行对.当在流中检测到回车时,readline()会在继续之前等待,查看下一个字符是否为换行.如果是换行,就抛掉回车和换行,把这一行作为String返回.如果不是换行,就抛掉回车,把这一行作为String返回,这个额外的字符会作为下一行的一部分读取.但是,如果回车是流的最后一个字符(如果流由Macintosh或者Macintosh创建的文本所生成,就很有可能发生这种情况),那…
在最近的小项目中,单片机中断优先级的问题,串口发送到上位机的数据有时会出现发送的数据被中断打断的问题. 于是,在上位机机上就容易出现错误,原来读取的方法是read()的方法,反复修改发送数据的格式依然没有好转. 后来讲将上位机的读取方式换成readline()问题得到了解决,且百发百中,问题可能归结于readline方法自身的特性吧. readline会一直在那里等候,知道接收到换行符"\r\n",所以在没有接收到完整数据时,会一直在那里等候数据的到来,不离不弃. 即便下位机的数据发送…
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…
描述 Python 文件 readline() 方法用于从文件读取整行,包括 "\n" 字符.如果指定了一个非负数的参数,则返回指定大小的字符数,包括 "\n" 字符. 语法 readline() 方法语法如下: fileObject.readline([size]) 参数 size -- 从文件中读取的字符数. 返回值 返回从字符串中读取的字符. 实例 以下实例演示了 readline() 方法的使用: 文件 runoob.txt 的内容如下: 这是第一行 这是第…
有以下代码:    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() 方法用于从文件读取整行,包括 "\n" 字符.如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符.高佣联盟 www.cgewang.com 语法 readline() 方法语法如下: fileObject.readline(size) 参数 size -- 从文件中读取的字节数. 返回值 返回从字符串中读取的字节. 实例 以下实例演示了 readline() 方法的使用: 文件 runoob.txt 的内容如下: 1…
在做 Largest Number 这道题之前,我对 sort 方法的用法是非常自信的.我很清楚不传比较因子的排序会根据元素字典序(字符串的UNICODE码位点)来排,如果要根据大小排序,需要传入一个比较函数. 先来看这道题,给你一个数组,让你把数组元素拼接起来,求能拼得的最大的数.如果只有两个数字 a 和 b,如何拼?很明显比较 ab 和 ba 两个数的大小,所以这道题首先需要对数组做一次排序.刷刷写下如下代码: nums.sort(function(a, b) { return (b + '…
控制台输入字符串之后回车,后台接收传来的字符串,代码如下: 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…
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 定义一个变量记住目标对象 定义一个构造器接收被增强对象 覆盖需要增强的方法 对于不想增强的方法,直接调用目标对象的方法. package cn.liuning.demo; import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; /* 1.实现与目标对象相同的接口 BufferedReader 2.定义一个变量记住目标对象 3.…
Jquery中val方法使用 val()// 取得第一个匹配元素的当前值 val(val)// 设置所有匹配元素的值 val([val1, val2])// 设置多选的checkbox.多选select的值(这是一个坑) <input type="checkbox" value="basketball" name="hobby">篮球 <input type="checkbox" value="fo…
通常,读文本我们会使用BufferedReader,它装饰或者说管理了InputStreamReader,同时提供readLine()简化了我们对文本行的读取.就像从流水线上获取产品一样,每当取完一件后,它自动准备好下一件并等待我们获取,一直到全部取完结束.所以我们的目标就是希望也能管理poi并提供一个readLine()一样的方法来读取Excel. 1.先来看一个有点类似Excel读取的文本需求:读取一类文本文件,文中每行内容由若干字段组成,这些字段由约定好的分隔符来分割.说它类似Excel的…
最近在项目中遇到了一个问题,由一个对象序列化的结构,在反序列化时一直提示失败,真的百思不得其解啊.在对问题排查了好久之后,才发现是这个序列化的对象中的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() 此输入流的下两个…
依赖:这个很重要,不同版本用法也有点区别: <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <version>2.0.2-beta</version> <scope>test</scope> </dependency> <dependency> <group…
最近在使用BigDecimal进行四舍五入时,发现setScale()方法设置的精度值并没有起作用,一度让我怀疑起是否jdk有bug,代码如下: 错误代码 double d = 7.199999999999999; BigDecimal decimal = new BigDecimal(String.valueOf(d)); decimal.setScale(2, BigDecimal.ROUND_HALF_UP); System.out.println(decimal.scale()); Sy…
       今天发现项目的工具类方法有个bug,并且还能迷惑你的bug,刚開始也是非常迷惑,由于这个bug之前出现过,可是过了两天就自己好了.今天又出现了.哦对,今天是 2017年3月31日,之所以说今天的日期,就是跟bug有关,且看以下代码 calendarInstance.set(Calendar.MONTH, calendarInstance.get(Calendar.MONTH) + 1 ); 这句代码意思非常明确.获取当前日期的下一月. 正常来说,比方不是今天,是3月30日,这句…
▲这篇文章主要为大家详细介绍了Centos7防火墙开放端口的快速方法,感兴趣的小伙伴们可以参考一下! 一.CentOS 7快速开放端口: CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,baidu之后发现Centos 7使用firewalld代替了原来的iptables.下面记录如何使用firewalld开放Linux端口: 开启端口 [root@centos7 ~]# firewall-cmd --zone=public --add-port=80/tcp --p…
java字符串的split,只传一个参数,后面空白的字符串会被忽略: public static void main(String[] args) { String str = "ab|c||"; String [] split = str.split("\\|"); System.out.println(Arrays.toString(split)); } 输出结果是[ab, c]. 解决方法是split第二个参数传一个负数,例如 public static vo…
欢迎大家加群讨论 点击链接加入群[ReactNative-解决问题交流群] :644124441 点击链接加入群[ReactNative技术交流群2] :687663534 多余的不解释了.直接上车吧.中途遇到的问题我也写出来了(其实和官网教程相似但也有不同不然我也不会写出来了):遇到问题可以留言 1.生成签名秘钥: 你可以用keytool命令生成一个私有密钥.在Windows上keytool命令放在JDK的bin目录中(比如C:\Program Files\Java\jdkx.x.x_x\bi…
最近写了一个支付宝微信对账报表,发现系统金额比支付宝微信的少好多,左查右查发现是追缴金额没统计到,再一查发现月结束日期为2019-09-31,9月咋会有31,为啥呢就追缴金额不行呢,因为其他类型用TIMESTAMP即使9.31不对也能统计到,而追缴用的时间戳存为int值,UNIX_TIMESTAMP('2019-09-31 23:59:59')转换为0.000000导致结束时间不对where条件查询就有问题. 在仔细一查发现工具类中有一个获取月份最大值,问题就出现在这里咯.代码很简单 publi…