JAVA控制台输入输出方法总结
java的控制台输入输出有很多方法,此文分别对其进行介绍。
1、控制台的输入
关于控制台的输入主要介绍三种方法,第一种方法使用BufferedReader获得控制台输入的数据,此方法是传统的输入方法,使用起来比较繁琐,输入效率也不高,其次是使用System.in作为输入,感觉此方法不是很灵活。最后,使用Scanner作为输入,这种方法使用起来非常的方便好用,并且功能强大。
1.1 使用BufferedReader方法输入,这种方法很繁琐
//返回输入的一行数据
public static String readLine1() throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
return br.readLine();
}
1.2 直接使用System.in输入
//获得输入的一数据块
public static String readLine2() throws IOException
{
byte buf[] = new byte[1024];
int i = System.in.read(buf);
return new String(buf, 0, i-2); //有两个结束符,\r\n,所以要减2
}
1.3使用Scanner输入,这种方法最好用
/**
* 可以使用s.next()输入一个不含空格的字符串,
* s.nextInt():输入一个整数
* s.nextDouble():输入一个double
* s.nextByte():输入一个字符
**/
public static String readLine3()
{
Scanner s = new Scanner(System.in);
return s.nextLine(); //s.nextInt();
}
2、控制台的输出
输出方式总共两种,分别是正常输出和发生错误时的输出。
两种输出分别为:
System.out.println("out: "+str);
System.err.println("err: "+str);
关于System.out函数的输出,有很多的输出格式,
在此借用一网友的代码,原文链接:Ajioy的专栏,JAVA控制台输出格式
public static void main(String[] args)
{
//Console print format
//System.out.printf(format, args);format为指定的输出格式,args参数
System.out.printf("%+8.3f\n", 3.14); //"+"表示后面输出的数字会有正负号,正的+,负的- ;8.3f表示输出浮点数,宽度为8,小数点保持3位有效
System.out.printf("%+-8.3f\n", 3.14);//"-"表示靠左对齐
System.out.printf("%08.3f\n", 3.14);//"0"8位宽度中自动补0
System.out.printf("%(8.3f\n", -3.14);//"("如果是负数,自动加上( )
System.out.printf("%,f\n", 123456.78); //","金钱表示方法,每三位有一个逗号
System.out.printf("%x\n", 0x2a3b); //输出16进制数
System.out.printf("%#x\n", 0x2a3b);//输出带0x标识的16进制数
System.out.printf("老板:您名字%s,年龄:%3d岁,工资:%,-7.2f\n","ajioy",21,36000.00);
System.out.printf("老板:您名字%1$s,年龄:%2$#x岁\n","ajioy",38); //"n{1}quot;表示用第n个参数 }
JAVA控制台输入输出方法总结的更多相关文章
- java控制台输入输出
一.比较传统的输入方法用输入流,得到字符串后要另行判断.转换 案例 import java.io.BufferedReader; import java.io.IOException; import ...
- java控制台输入输出字符串
一.实例说明 本实例通过输入流(System.in)实现从控制台接受用户输入信息,并将该信息输出到控制台. 运行效果如下图: 二.实现代码 三.要点说明 该实例的关键就是用到了System类的输入流, ...
- 关于Java控制台输入输出乱码问题
产生原因:因为这个开源项目的默认字符编码为UTF-8,所以我的控制台的字符编码也自动变成了UTF-8,而键盘的输入流的默认格式是GBK格式,这样就造成了在GBK转UTF-8的过程中产生的奇数乱码错误( ...
- Java常用的输入输出方法
对于经常上机刷题的来说,首先得解决输入输出方法,Java的输入输出流在Java学习过程的后面部分才会接触,但是我们可以掌握一些简单的,常用的输入输出方法 首先输出 大家最熟悉的莫过于输出方法,直接用S ...
- java控制台输入
一.java控制台输入 java控制台输入有如下几个方法 1.JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的 ...
- Java读写文件方法总结
Java读写文件方法总结 Java的读写文件方法在工作中相信有很多的用处的,本人在之前包括现在都在使用Java的读写文件方法来处理数据方面的输入输出,确实很方便.奈何我的记性实在是叫人着急,很多时候既 ...
- 在竞赛ACM Java处理输入输出
一.Java之ACM注意点 1. 类名称必须采用public class Main方式命名 2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非 ...
- 通过Java反射调用方法
这是个测试用的例子,通过反射调用对象的方法. TestRef.java import java.lang.reflect.Method; import java.lang.reflect.In ...
- Java 控制台输入数字 输出乘法表(代码练习)
最近,回忆了一些刚学习Java时经常练习的一些小练习题.感觉还是蛮有趣的,在回顾时想起好多学习时的经历和坎坷,一道小小的练习题要研究半天,珍重过往,直面未来.下面贡献代码,Java 控制台输入数字 输 ...
随机推荐
- MySQL5.1升级5.6后,执行grant出错:ERROR 2013 (HY000): Lost connection to MySQL server during query【转载】
转载: MySQL5.5升级5.6后,执行grant出错:ERROR 2013 (HY000): Lost connection to -mysql教程-数据库-壹聚教程网http://www.111 ...
- 剑指offer 栈的压入弹出 顺序
判断: 如果下一个弹出的数字刚好是栈顶元素,那么直接弹出 如果下一个弹出的数字不在栈顶,我们要把压栈序列中,还没有入栈的数字压入辅助栈,知道把下一个需要弹出的数字压入栈顶 如果所有的数字都入栈,但是仍 ...
- 5V与3.3V器件电平转换
源:5V与3.3V器件电平转换 当你使用3.3V的单片机的时候,电平转换就在所难免了,经常会遇到3.3转5V或者5V转3.3V的情况,这里介绍一个简单的电路,他可以实现两个电平的相互转换(注意是相互哦 ...
- angularJS 系列(六)---$emit(), $on(), $broadcast()的使用
下面以一个例子来讲述 angular 中的event system,有$emit(), $on(), $broadcast().效果图如下 下面的代码中,用到了 controller AS 的语法,具 ...
- ZOJ 3702 Gibonacci number(数学推导)
公式推导题,G(0) = 1,G(1) = t,给出一个 i 和 G(i),要求求出G(j)的值: G(0) = 0*t + 1 G(1) = 1*t + 0; 观察t的系数和常数值可以知道二者都遵循 ...
- springMVC记录系统日志的几种方式
在项目开发中往往需要记录一些用户操作的系统日志到数据库,而不仅仅是记录在文件中或者log4j上. 第一种是最简单最原始也是最繁琐最笨的办法:即每个需要记录的操作入口方法中去调用新增日志的接口. ...
- Xamarin For Visual Studio 3.0.54.0 完整离线破解版
Xamarin For Visual Studio 3.0.54.0 完整离线破解版 Xamarin For Visual Studio就是原本的Xamarin For Android 以及 Xama ...
- linux command ---1
查看Linux的内核版本 当前系统的发行版信息(distribution):lsb_release -a , lsb(linux standard Base) and distribution inf ...
- ASP.NET MVC 5 WEB API 用户验证
参考博客:ASP.NET MVC5+EF6+EasyUI 后台管理系统(65)-MVC WebApi 用户验证 (1) 参考博客:MVC WebApi 用户验证 (2)构建ASP.NET MVC5+E ...
- 51Nod 1534
分析:Pwin代表Polycarp走的步数,而Win代表Vasiliy走的步数,则有Pwin=p.x+p.y,Vwin=max(v.x,v.y);显然若Pwin<=Win,肯定是Vasiliy胜 ...