目录
一、定义
二、输入方式
(一)常用输入:Scanner 类
(二)窗口输入:JOptionPane 类
(三)安全输入:IO.console 类
三、输出方式
(一)不换行输出:System.out.print();
(二)换行输出:System.out.println();
(二)格式化输出:System.out.printf();
一、定义
(一)输入(Input)输出(Output)一IO流
- 输入流:以电脑为参考系,从外部向程序或电脑中输入一个数据,称之为输入流
- 输出流:以电脑程序向外输出一个数据,称之为输出流。
(二)系统输入输出 —— 标准输入输出
- 标准输出 —— 显示器 System.out 这是Java中的标准输出对象。
- 标准输入 —— 键盘System.in这是Java默认的。(用于文件的IO)
默认输出是输出到控制台。
二、输入方式
按Enter将缓存区的数据输入,也可以通过Enter跳过输入
(一)常用输入:Scanner 类
导入包:import java.util.Scanner; // 在创建方式,系统自行导入
创建对象:Scanner 变量名 = new Scanner(System.in);
调用对象: 基本数据类型 标识符 = 变量名. next基本数据类型
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner inPut = new Scanner(System.in); //创建输入对象
//注意:常用的输入数字数据方式(还有nextShort、nextByte、nextLong、nextFloat)
int a = inPut.nextInt(); //nextInt()用于int类型
double b = inPut.nextDouble(); //nextDouble() 用于double类型
//注意:只有输入整型数据才可以限制输入个数:nextInt(个数)[
int k = inPut.nextInt(10); //超过限制输入个数,会报错
//注意:next() 和 nextLine() 用于字符串。next 和 nextLine的区别
String i = inPut.next(); //next不能用于输入空格,会以空格作为结束符(按Enter输入结束,不会输出空格后的字符)
String j = inPut.nextLine(); //nextLine可以输入空格字符(按Enter输入结束,可以输出空格后的字符)
//注意:Scanner没有nextChar的方法 ==> 字符是在字符串的基础上添加chartAt(下标)
char x = inPut.next().charAt(0);
char y = inPut.nextLine().charAt(0);
}
}
快速入门
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //生成scanner对象
System.out.print("请输入你的姓名:");
String name = sc.nextLine();//输入字符串
System.out.print("请输入你的年龄:");
int age = sc.nextInt();//输入整数
System.out.println("姓名:" + name +"\n" +"年龄:" + age);
}
}
(二)窗口输入:JOptionPane 类
导入包:import javax.swing.JOptionPane; // 在调用使用方式,系统自行导入
使用对象:基本数据类型 变量名 = JOptionPane.showInputDialog ("字符串")
import javax.swing.JOptionPane;
public class Demo {
public static void main(String[] args) {
String name = JOptionPane.showInputDialog("请输入姓名:");
System.out.println("姓名:" + name);
//System.out.printf("姓名:%s",name);
}
}
运行过程:
运行结果:
(三)安全输入:IO.console 类
导入包:import java.io.Console; // 在调用使用方式,系统自行导入
创建对象:Console 变量名 = System.console();
调用对象:数据类型 变量名 = 变量名.readLine() / 变量名.readPassword()
安全输入只能在cmd控制台运行,不能在IDEA、eclipse等工具运行
在cmd终端里,进入文件所在目录,运行指令:java -Dfile.encoding=utf-8 源文件名.java
之后就可以在cmd终端里像IDEA控制端一样输入
import java.io.Console;
public class Demo {
public static void main(String[] args) {
Console con = System.console(); //创建安全输入对象
String name = con.readLine("请输入账号:");
String passWorld = con.readLine("请输入密码:");
System.out.println("账号:" + name + "\t" + "密码:" + passWorld);
}
}
readLine() 和 readPassword() 的使用说明
import java.io.Console;
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
Console con = System.console(); //创建安全输入对象
//readLine() 只能用于 String、readPassword() 只能用于 char[ ] ==> 只能用于字符
String a = con.readLine();
char[] b = con.readPassword(); //相当于上一句,特殊:隐藏输入过程
System.out.printf("a = %s \t b = %s\n",a, Arrays.toString(b));
//数组的输出要用Arrays.toString(),不然输出就是隐藏地址
//不用该方法,就要用遍历的方式
//("提示")内可以为提示符
String x = con.readLine("x = ");
char[] y = con.readPassword("y = ");
System.out.println("a = " + x + "\t" + "y = " + Arrays.toString(y));
//("输出",输入对象)可以作为输入输出()
String name = "变量";
String data = con.readLine("this is data %s",name);
char[] pwds = con.readPassword("this is password %s","123456789");
//另外io.Console有【其他输出方式】
con.format("this is format %s\n",name);
con.writer().println("writer");
}
}
三、输出方式
(一)不换行输出:System.out.print();
public class Demo {
public static void main(String[] args) {
int a = 1;
int b = 2;
System.out.print("a = " + a);
System.out.print("b = " + b);
//运行结果:a = 1b = 2
}
}
(二)换行输出:System.out.println();
IDEA的快捷方式:sout
public class Demo {
public static void main(String[] args) {
int a = 1;
int b = 2;
System.out.println("a = " + a);
System.out.println("b = " + b);
//运行结果:
// a = 1
// b = 2
}
}
soutv:输出变量的标识符和值
soutm:输出类名.方法名
soutp:输出方法的形参名和值
public class Demo {
public static void main(String[] args) {
int a = 1;
System.out.println("a = " + a); //a = 1
System.out.println("Demo.main");//Demo.main
System.out.println("args = " + Arrays.deepToString(args));//args = []
}
}
(二)格式化输出:System.out.printf();
与C语言一样的格式化输出:
字符:%c | 十进制整数:%d | 浮点数:%f | 无符号十进制整数:%u |
字符串:%s | 八进制整数:%o | 十六进制整数:%x | 输出%号:%% |
布尔:%b | 指数:%e | 通用浮点数:%g(根据大小决定用e还是f) |
IDEA快捷方式:souf
public class Demo {
public static void main(String[] args) {
int a = 1;
String b = "2312123";
System.out.printf("a = %d\n",a); //a = 1
System.out.printf("b = %s\n",b); //b = 2312123
System.out.printf("3>7的结果是:%b %n", 3>7); //3>7的结果是:false
//%n 和 \n 同个意思
System.out.printf("字母A的散列码是:%h %n", 'A'); //字母A的散列码是:41
}
}