首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

BufferedReader在readLine()上无休止地添加

BufferedReader是Java中的一个类,用于读取字符流。它提供了readLine()方法,用于从输入流中读取一行文本。

在使用BufferedReader的readLine()方法时,如果没有可读取的数据,它会一直等待直到有数据可读取。这可能导致程序陷入无限等待的状态,从而无法继续执行后续的代码。

为了避免这种情况,可以使用以下方法来解决:

  1. 使用available()方法:在调用readLine()方法之前,可以先使用available()方法检查输入流中是否有可读取的数据。如果没有数据可读取,可以采取相应的处理措施,如等待一段时间后重新尝试读取或者抛出异常。
  2. 设置超时时间:可以使用Socket的setSoTimeout()方法来设置读取超时时间。在调用readLine()方法之前,设置一个合理的超时时间,如果在指定时间内没有读取到数据,就抛出SocketTimeoutException异常。
  3. 使用线程:可以将读取输入流的操作放在一个单独的线程中进行,这样主线程就不会被阻塞。在读取线程中,可以使用循环来反复调用readLine()方法,但需要注意在适当的时候退出循环,以避免无限等待。

需要注意的是,以上方法只是解决了BufferedReader在readLine()上无休止添加的问题,并不能保证读取到的数据是完整的或符合预期。在实际应用中,还需要根据具体情况进行数据处理和错误处理。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。

腾讯云云服务器(CVM)是一种弹性计算服务,提供了可扩展的计算能力,适用于各种应用场景。您可以根据实际需求选择不同配置的云服务器,以满足您的计算需求。

腾讯云对象存储(COS)是一种高可用、高可靠、低成本的云存储服务,适用于存储和处理各种类型的数据。它提供了简单易用的API接口,方便开发人员进行数据的上传、下载和管理。

更多关于腾讯云云服务器和对象存储的详细信息,请访问以下链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何优雅添加进度条(

Hello亲爱的小伙伴们,本期的大猫课堂要教大家运用R中高级语法功能为任意函数优雅添加进度条,代码只要10行不到哦!Let's go! ?...这么说可能有些抽象,举一个例子:如果我们希望某个函数每次开始运行前都能在屏幕中打印时间,那么我们第一反应就是函数第一行添加如下代码: print(Sys.time()) 但是,如果我们现在有十几个函数...,为每个函数都添加一行这样的代码是不现实的。...那么,有什么办法能够一劳永逸解决这个问题呢?答案就是函数操作符。 函数操作符应该如何使用?仍旧以上文中打印启动时间为例。...实际,这里的“...”就是上文例子中print_time(square)(3)中的参数“3”。

69710

使用 singledispatch Python 中追溯添加方法

本系列中,我们将介绍七个可以帮助你解决常见 Python 问题的 PyPI 库。今天,我们将研究 singledispatch,这是一个能让你追溯向 Python 库添加方法的库。...然而,我们想给库添加一个面积计算。如果我们不会和其他人共享这个库,我们只需添加 area 方法,这样我们就能调用 shape.area() 而无需关心是什么形状。...虽然可以进入类并添加一个方法,但这是一个坏主意:没有人希望他们的类会被添加新的方法,程序会因奇怪的方式出错。 相反,functools 中的 singledispatch 函数可以帮助我们。...这保证了如果我们出现一个新的形状时,我们会明确报错而不是返回一个无意义的结果。...本系列的下一篇文章中,我们将介绍 tox,一个用于自动化 Python 代码测试的工具。

2.5K30
  • Ubuntu 如何添加 Apt 软件源

    虽然默认的 Ubuntu 软件源有成千上万个软件包可用,但是有时候你还是需要从第三方软件源安装软件。...在这篇指南中,我们将会向你展示 Ubuntu 和 Debian 系统中的两种方式,来添加 apt 软件源。...默认情况下, Ubuntu 18.04 或者更新的发行版,如果公开的 key 被导入,add-apt-repository还会更新软件包的索引。...五、手动添加软件源 如果你想对于你的软件源如何组织拥有更多控制操作,你可以手动编辑文件/etc/apt/sources.list并且文件中添加 apt 软件源的地址。...安装最近添加的软件源中的软件包时,你必须更新软件包索引: sudo apt update 一旦软件包索引更新完成,你可以从最近添加的软件源中安装软件包: sudo apt install couchdb

    22.5K31

    Ubuntu 20.04添加swap交换空间

    如果您的系统不断出现内存不足的情况,则应添加更多内存RAM。交换空间旨在改善系统的性能,并不会增加系统的总内存。...如果要添加更多交换空间,请将2G替换为你所需交换空间的大小。 创建一个指定大小文件的方式Ubuntu 20.04中有两种,分别fallocate和dd命令。...如果您的系统没有fallocate命令,或者您收到一条错误消息,提示fallocate failed: Operation not supported操作不支持。...Linux内核启动是将会次配置文件的参数。...你将使用rm命令删除文件:sudo rm /swapfile 结论 我们向您展示了如何在Ubuntu 20.04系统创建交换文件以及激活和配置交换空间。如果您遇到问题或有反馈,请在下面发表评论。

    3.6K31

    RT-Thread Nano 添加控制台与 FinSH

    Nano 添加 UART 控制台 RT-Thread Nano 添加 UART 控制台打印功能后,就可以代码中使用 RT-Thread 提供的打印函数 rt_kprintf() 进行信息打印...如下图是一个 main() 函数中每隔 1 秒进行循环打印 Hello RT-Thread 的示例效果: Nano 添加 FinSH 组件 RT-Thread FinSH 是 RT-Thread... RT-Thread Nano 添加 FinSH 组件,实现 FinSH 功能的步骤主要如下: 添加 FinSH 源码到工程 实现函数对接 添加 FinSH 源码到工程 KEIL 添加...,点击 Additional Software, Pack Vendor 中可勾选 RealThread 快速定位 RT-Thread 软件包,然后 RT-Thread 软件包中勾选 shell,即可添加...进入弹窗进行添加,如下图); rtconfig.h 中添加 #define RT_USING_FINSH 宏定义,这样 FinSH 将生效,如下图。

    1.3K30

    YouTube,看特斯拉认真地研究“如何安全撞车”

    为了直观展示该技术的安全性,特斯拉碰撞实验室用实车展示:让一辆重达2吨的老款雪佛兰索罗德皮卡与Model Y相撞,通过车内的假人姿势和假人身上的探测器数据判断,新技术是否有效减轻了假人的受伤风险和程度...传统工业标准的撞击测试中,专注于正侧面撞击或者正面撞击,但是特斯拉根据全球各地路上行驶的特斯拉汽车回传的行车视频,收集发生交通事故时的各项数据,并复制出真实的碰撞场景时发现:现行的碰撞测试都是行业规定内的标准测试...特斯拉依托“真实世界数据”,通过仿真工程师电脑模拟不同方位的撞击,帮助特斯拉做很多的微调工作,比如安全气囊每毫米级的展开时间、速度、角度和安全带,来执行最好的安全保护措施。...8月的Ai Day,特斯拉坚持推出纯视觉无人驾驶方案,摘掉毫米波雷达,自诩仅用“眼睛”开车,识别不同的物体、道路宽距、车道线市识别、行人识别准确度上做了优化。...对比之下,国内的自动驾驶汽车采用的是“激光雷达+高精地图”组合模式,特斯拉的摄像头再好,也解决不了致命缺陷:摄像头精度和反应比不上毫米波雷达;二是容易受到光照、天气干扰。

    58210

    TCP与UCP协议,及socket编程

    UDP是User Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络以任何可能的路径传往目的,因此能否到达目的,到达目的的时间以及内容的正确性都是不能被保证的...3,UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方 TCP:1,面向连接的协议,socket之间进行数据传输之前必然要建立连接,所以TCP中需要连接...3,TCP是一个可靠的协议,它确保接收方完全正确获取发送方所发送的全部数据。...对象 String readline; readline=sin.readLine(); //从系统标准输入读入一字符串 while(!...os.flush();//刷新输出流,使Server马上收到该字符串 System.out.println("Client:"+readline);//系统标准输出上打印读入的字符串

    59910

    Hexo博客添加可爱的Live 2D模型

    查找资料的偶然间,我发现一个博客上有非常可爱的Live 2D模型,当时我就被打动了,马上开启审查元素,试图找出这个Live 2D模型的信息,可是找了半天没找到。...最后通过截图->谷歌图片的方式,终于一层一层的找到了相关资料,我正好有一个Hexo博客,所以今天就来博客添加一波Live 2D模型!...首先,安装npm包: npm install --save hexo-helper-live2d 然后hexo的配置文件_config.yml中添加如下配置,详细配置可以参考文档: live2d:...live2d-widget-model-tsumiki live2d-widget-model-unitychan live2d-widget-model-wanko live2d-widget-model-z16 下载完之后,Hexo...根目录中新建文件夹live2d_models,然后node_modules文件夹中找到刚刚下载的live2d模型,将其复制到live2d_models中,然后编辑配置文件中的model.use项,将其修改为

    1.6K40

    腾讯云容器服务添加外部 DNS 服务器

    概述 腾讯云容器服务kubernetes平台的基础做了大量和腾讯云IAAS紧密结合的工作,比如集群创建时直接创建k8s集群、集群内的容器使用VPC网络的IP,容器数据卷使用CBS、ingress直接使用腾讯云的...目前,腾讯云容器服务已经有很多客户使用,客户使用腾讯云容器服务的过程中,常见的一个问题是客户应用除了依赖k8s的服务发现外,还有部分应用需要使用客户自己的DNS服务器。...针对这种情况,本文先介绍k8s-dns的原理,然后再具体说明添加外部DNS服务器的步骤。后续我们将把这个功能做到产品中来,支持客户通过控制台来添加外部DNS服务器。...DNS服务器的操作原理 添加外部DNS服务器的原理是利用dnsmasq的启动参数,dnsmasq的启动参数中,有个叫server的参数,通过server参数可以指定上游的dns服务器,kube-dns...腾讯云容器服务添加自定义dns服务器操作步骤 1、先登录到一台容器主机,将kube-dns的yaml文件保存下来 注:kubernetes 1.4.6版本kube-dns名称为k8s-dns, kubernetes

    10.5K30

    Java中的BufferedReader与BufferedWriter简介与使用

    如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的进行写出。 2....为了能一次读取一行使用者的输入,使用了BufferedReader来对使用者输入的字符进行缓冲。readLine()方法会在读取到使用者的换行字符时,再一次将整行字符串传入。 3....bufferreader = new BufferedReader(new InputStreamReader(inputstream)); line = bufferreader.readLine...= null) { // 如果 line 为空说明读完了 buffer.append(line); // 将读到的内容添加到 buffer 中 buffer.append("\n"); // 添加换行符...String line = null; while((line = bfr.readLine()) !

    49020

    我去,你竟然还在用 try–catch-finally

    不用写注释都能明白这段代码是干嘛的: try 块中读取文件中的内容,并一行一行打印到控制台。如果文件找不到或者出现 IO 读写错误,就在 catch 中捕获并打印错误的堆栈信息。...最后, finally 中关闭缓冲字符读取器对象 BufferedReader,有效杜绝了资源未被关闭的情况下造成的严重性能后果。...如果有多个资源(BufferedReader 和 PrintWriter)需要释放的话,可以直接在 () 中添加。...接下来,我们自定义类中再添加一个 out() 方法, class MyResourceOut implements AutoCloseable { @Override public void...哇,有没有想到我们之前的那个例子—— try-finally 中,readLine() 方法的异常信息竟然被 close() 方法的堆栈信息吃了。

    1.3K10

    如何精准用打印机贺卡或邀请函打字

    如何精准用打印机贺卡或邀请函打字 2018-08-26 07:35 当你有一堆带有空位的贺卡或邀请函,你是准备手写呢,还是准备打字呢?...那么如何打印以便让所有文字的内容都对应到贺卡或邀请函的正确空位,还是有些难度的。 本文将教你如何在毫米级别将文字精准打印到贺卡或邀请函。...) 为了能够更精准控制打印文字地位置,我们还需要在 Word 中做一些标尺设置: 文件 → 选项 → 高级 标尺单位设为“厘米” 取消勾选“使用字符单位” (重要!...第三步:调整打印方向 如果你一步得到的方向是对着的,那么这整个第三步都是可以忽略的。 现在,我们要么调整文档方向,要么调整打印机纸张方向。...(比如我实际尝试 100% 缩放比下,3 次方向键移动 1 毫米。 不断刚刚已经打印过的邀请函打印试错,直至所有文本框都得到满意的位置: ?

    11.5K10
    领券