Java从控制台读取数据,输入流System.in的几种方法效率比较

带你学习Android中的ContentObserver 通过使用,开发者可以有效地监听系统设置的变化,例如屏幕亮度等。这种机制使得应用能够动态响应系统设置的更改,提升用户体验。在实现需要与系统设置交互的应用时,合理使用是非常重要的。 阅读详情

这是一道PTA上关于复杂度算法的题目——最大子列和问题,程序简单。

我分别用

1)构造Scanner对象:Scanner in = new Scanner(System.in);

2)构造BufferedReader对象:BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

3)直接使用System.in.read()读取从控制台输入的字节三种方法,来测试程序运行效率。

例如,其中的一个程序代码如下(其余两个只是读入数据的方式有差异):

import java.io.*;

public class Main {
	public static void main(String...strings) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		br.readLine();
		String s = br.readLine().trim();
		String[] nums = s.split(" ");
		
		int thisSum = 0;
		int maxSum = 0;
		for(int i = 0; i < nums.length; i++) {
			thisSum += Integer.parseInt(nums[i]);
			if(thisSum > maxSum)
				maxSum = thisSum;
			else if(thisSum < 0)
				thisSum = 0;
		}
		System.out.println(maxSum);
	}
}
而,1)、2)、3)的运行结果分别如下:

可以发现,使用Scanner类的对象在读取输入数据方面虽然很方便,但是运行效率低,数据量越大,差异越明显,并且占用内存空间也大。

而BufferedReader和System.in则无明显区别,但是BufferedReader在读入数据方面上的处理会稍微简便些。


uniapp实现app版本发现新版本后,自动更新 app实现自动更新 阅读详情

相关推荐

GhidrAssist:AI驱动的逆向工程助手实战指南

逆向工程是分析软件内部工作原理、理解二进制代码逻辑的关键技术,广泛应用于软件安全、恶意代码分析和漏洞挖掘等领域。其核心原理在于通过反编译、控制流与数据流分析等手段,将机器码还原为可理解的高级语言表示。传统逆向分析高度依赖人工经验,面对海量代码时效率低下且易出错。随着大语言模型(LLM)技术的发展,其强大的代码理解与推理能力为自动化逆向分析提供了新的可能。通过将LLM与成熟的逆向工程框架(如Ghidra)相结合,可以构建智能辅助系统,实现代码意图的自动解释、变量/函数的智能重命名以及潜在漏洞模式的辅助识别,从

weixin_42547335的博客 557

Java中BufferedReader、InputStreamReader、Scanner和System.in区别

Java中获取键盘输入值的方法 以前写算法都是C/C++写的,现在用Java写,虽然算法是独立于语言的,但是Java从键盘获取输入确实有些不一样。在C/C++中我们可以用scanf和cin来获取用户从键盘上的输入,但是在Java中并没有这种方法,不过代替的是BufferedReader、InputStreamReader、Scanner和System.in四种方法。 1.System.in System.in返回的是InputStream指向命令行输入的字节流,它的read方法以字节流的方式来读取命令行的输

youxiyic的博客 858

目标检测YOLO实战应用案例100讲-基于激光雷达点云的三维目标检测算法研究

近几年来,在计算机视觉领域,利用深度学习卷积神经网络技术来实现各种任务的算法越来越多。毫米波雷达、相机、激光雷达、超声波雷达等车载传感器生产成本的降低,汽车的自动驾驶技术得到了飞速发展,在我们的日常生活中经常能看到该技术辅助汽车驾驶员进行行车。和非自动驾驶汽车相比,自动驾驶汽车存在诸多优点,如进一步减少交通事故,保障人身安全;提供安全合理的路线,避免交通拥堵;采用清洁无污染的电能作为汽车新能源,从而降低大气污染等。现如今,自动驾驶技术已经逐渐深入到各个领域并发挥着关键的作用。

qq_36130719的博客 3673

System.in.read()的用法

System.in.read()的用法   2007-10-25 22:00:24|  分类: 默认分类 |  标签: |字号大中小 订阅  用读取键盘输入必须构建       1。输入流   System.in;       2。字符输入流   InputStreamReader       3。缓存输入流   BufferedReader

studyvcmfc的专栏 4万+

JavaJava 中的 System.in.read() 详解

虽然相对于更高级的输入处理方式(如 Scanner 或 BufferedReader),System.in.read() 显得较为低级,但它是理解 Java 输入输出(I/O)流的重要基础。在这个例子中,用户输入了字符 A,System.in.read() 返回的是字符 A 的 ASCII 码 65。也可以将输入存储在字节数组中,方便处理更复杂的输入场景。在本文中,我们将深入探讨 System.in.read() 的工作原理、使用方法、适用场景以及它的局限性,并介绍一些更高级的输入处理方式。

哈哈哈哈哈哈哈 2517

System.in中的read()方法

System.in中的read()方法

懒人的博客 2万+

java代码BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));详解

这段代码的作用是创建一个 BufferedReader 对象,用于从标准输入(通常是键盘输入)中读取文本数据。这段代码的作用是创建一个 BufferedReader 对象,用于从标准输入(通常是键盘输入)中读取文本数据。这段代码的作用是创建一个 BufferedReader 对象,用于从标准输入(通常是键盘输入)中读取文本数据。这段代码的作用是创建一个 BufferedReader 对象,用于从标准输入(通常是键盘输入)中读取文本数据。,程序会等待用户输入一行文本,然后将用户输入的内容打印出来。

liruizht的博客 1076

java控制台输入_Java中从控制台输入的三种方式

我们最熟悉的从控制台读取一个字符或者一个字符串都知道用Scanner,那么除了Scanner还有没有其他的呢,答案是有的,我们来看看。System.in.read()System.in.read()返回一个整型字节数据,该数据表示的是字节因此是Unicode的第一个字节或是字符的ASCII码值。该方法是从一个流中一个一个的读取数据,因此是一个迭代的过程。我们可以看出in是一个静态的流,因此在该程序...

weixin_32243793的博客 744

Java的输入与输出

使用NIO(New IO):Java提供了新的非阻塞IO库,可以通过使用ByteBuffer和Channel类来进行大型数据的输入输出操作。使用文件映射方式:Java提供了FileChannel以及MappedByteBuffer类,可以使用文件映射方式来直接读写大型数据文件。使用缓冲IO流:Java提供了BufferedReader和BufferedWriter类,可以使用这两个类来读取大型数据文件和写入大量数据到文件。使用字节流:如果处理的数据是二进制数据,可以使用字节流来进行读写操作。

weixin_61544920的博客 1385

Java输入输出(做题常用介绍)

Java 两种常用的输入输出方式,应对基础的刷题网站或面试、比赛。

m0_63911891的博客 918

Java 输入输出避坑指南:从控制台交互到文件读写,一篇搞定所有实战问题

这篇文章深入讲解了Java输入输出的核心知识点和常见问题,主要涵盖三方面内容:1.控制台输入:详细解析Scanner类的各种方法,重点解决nextInt()后接nextLine()出现的换行符残留问题,提供解决方案;2.格式化输出:系统介绍printf和String.format的使用技巧,并给出丰富示例;3.文件读写:完整说明用Scanner读取文件和PrintWriter写入文件的操作流程,强调路径处理、异常捕获和资源关闭等细节。文章通过大量代码示例和问题分析,帮助开发者掌握Java IO的正确用法。

rookie168的博客 661

关于java输入方式的一些浅薄的理解

关于java输入方式一些浅薄的理解

zh521131415的博客 704

java输入比较_Java中读取输入方式的性能比较

程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧:使用System.out.read()从控制台接收一个字符,只能针对一个字符的获取,同时,获取进来的变量的类型只能是char,当我们输入一个数字,希望得...

weixin_42120405的博客 189

Java获取用键盘输入常用的的两种方法

Scanner类:简单易用,适合快速读取各种类型的数据。类:性能更高,适合处理大量字符输入,但使用起来稍微复杂一些。

2501_94114815的博客 17

java 文件和流_Java学习笔记5-方法、流(Stream)、文件(File)和IO

我们经常使用到 System.out.println(),那么它是什么呢?一、系统方法我们经常使用到 System.out.println(),那么它是什么呢?println() 是一个方法System 是系统类。out 是标准输出对象。这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 println()。那么什么是方法呢?Java方法是语句的集合,它们在一起执行一个功...

weixin_28813401的博客 161

详细整理Java 从命令控制台输入数据读取输入流System.in几种常用方法

一、System.in(最笨的方法) 首先看jdk的API. System的静态方法in返回的是一个InputStream类型的对象,则我们可以用读取输入流的方式对其进行读取。 按API的说法“此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。”键盘上按下的任何一个键都会被当做是输入值。 如何回显输入值? 我们就用读取输入流的方式进行读...

haierboos 1922

Java 内置包装类——System类详解

System 类位于 java.lang 包,代表当前 Java 程序的运行平台,系统级的很多属性和控制方法都放置在该类的内部。由于该类的构造方法是 private 的,所以无法创建该类的对象,也就是无法实例化该类。

Itmastergo的博客 1101

java system.in.read_System.in.read()的使用方法

关键字: system.in.read()我们先来看一段程序package system.in;import java.io.IOException;public class SystemIn {/*** @param args* @throws IOException*/public static void main(String[] args) throws IOException {int ...

weixin_42402241的博客 3023

Java io流System.in.read()如何使用

开门见山 解决问题 这里提到的read()方法是指java.io包下InputStream里的read()。InputStream类提供了一个抽象read方法及它的两个重载方法,分别是: abstract int read() //从键盘缓冲区读取一个字节,返回该字节的ASCII码 int read(byte[] b) //从键盘缓冲区读取一个字节数组,返回字节数 int read(by...

qq_41297896的博客 6575

JAVA练习9 输入输出

1.编写应用程序,使用System.in.read()方法读取用户从键盘输入的字节数据,回车后,把从键盘输入的数据存放到数组buffer中,并将用户输入的数据通过System.out.print()显示在屏幕上。2.编写应用程序,使用System.in.read()方法读取用户从键盘输入的字节数据,回车后,把从键盘输入的数据存放到数组buffer中,并将用户输入的数据保存为指定路径下的文件。System.out.println("第"+(i+1)+"次发送数据:"+data1[i]);

qq_61141142的博客 1127

java输入system.in.read()

system.in.read(

水滴石穿 3304

电力系统设备绝缘在线监测解决方案,附硬件/源码等参考资料-电路方案

电力系统设备在线监测装置是一种能够在线监测高压电力电缆以及绝缘状态的装置,该装置的使用为诊断电缆及子线路绝缘状态早期缺陷和事故隐患、控制突发性绝缘事故、监测电气设备绝缘性能的好坏提供了有效的信息,并直接影响设备的安全可靠运行。该电力系统设备绝缘在线监测装置安装方便、操作简单、实时性强、监测信息更加真实准确,广泛应用于0.4kV~35kV电力系统中。该电力系统设备绝缘在线监测人机界面如下图所示,由液晶显示屏、指示灯、按键三部分组成,如截图所示:该电力系统设备绝缘在线监测装置由高性能的单片机控制管理,液晶显示屏显示系统当前运行状态。当诊断出运行设备故障时,指示灯、蜂鸣器同时报警、告警继电器动作,以便于设备维护人员及时了解电缆线路及绝缘子线路绝缘状态。并且,该装置还具有RS485通讯接口,以便于与上位机进行通讯。

嵌入式Linux多家企业真实笔试题.zip

嵌入式Linux多家企业真实笔试题.zip

下一篇: C++中的struct
Van0512
博客等级 码龄10年 3粉丝 21原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值