目录
一、定义
(一)输入(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
}
}