CoreJava读书笔记--输入输出

输入输出

(一)读取输入

前面我们使用过很多“标准输出流”,System.out.println();要想使用“标准输入流”,首先要构造一个Scanner对象,并与“标准输入流”System.in关联。接着使用in.nextXXX()方法读取输入即可。

Scanner in = new Scanner(System.in);

运行示例,读取控制台输入的姓名,年龄,薪资:

import java.util.Scanner;

public class ScannerTest {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.println("What's your name?");
		String name = in.nextLine();
		
		System.out.println("How old are you?");
		int age = in.nextInt();
		
		System.out.println("How many salary do you have?");
		double salary = in.nextDouble();
		
		System.out.println("His name is "+name+",his age is "+age+",his salar"
				+ "y is "+salary+".");
	}
}

因为Scanner类在控制台输入是可见的,所以不适用于读取密码,Java6以后,引入Console类来实现读取密码。

package CoreJava;

import java.io.Console;

public class ConsoleTest {
	public static void main(String[] args) {
		Console con = System.console();
		if(con!=null) {
			String name = con.readLine("Username:");
			char[] password = con.readPassword("Password:");
			con.printf("Username is: " + name + "\n");
			con.printf("Password is: " + password + "\n");
		}else {
			System.out.println("Console is unavailable");
		}
	}
}

以上代码不能在eclipse等IDE中使用,不对con对象进行判空处理,会报错java.lang.NullPointerException,作判空处理后,会打印Console is unavailable。既然不能在IDE中运行,我们打开cmd,用命令窗口来运行该代码。运行结果如图:

 

(二)格式化输出

System.out.println(x)可以将数值x输入到控制台上,这条命令将以x对应的数据类型所允许的最大非0数字位数打印输出x。

如果希望显示美元符号,美分符号等,就有可能出现问题。所以我们可以使用printf方法。

package CoreJava;

public class PrintfTest {
	public static void main(String[] args) {
		double x = 10000.0/3.0;
		System.out.printf("%8.2f", x);//%表示以格式化输出,8个长度,小数点后两位的浮点数输出。
		                              //最终输出的是: 3333.33(注意:前面有空格,占一位。)
		/*
		 * d表示十进制数,x表示十六进制数,f表示浮点数,s表示字符串,c表示字符,b表示boolean值,h表示散列码*/
		
		System.out.println();
		String name = "zxyy";
		int age = 23;
		System.out.printf("Hello %s. Next year ,you'll be %d.", name,age);
		//Hello zxyy. Next year ,you'll be 23.
		System.out.println();
		/*还有许多标志,也可以对数值进行格式化输出,例如:,可以添加分隔符(3,333.33),+可以打印正数和负数的符号,
		空格可以在正数前添加空格,0在数字前补0等
		*/
		System.out.printf("%,(.4f", x);//3,333.3333
	}
}

下面用一个示意图表示格式说明符的语法图:

(三)文件输入与输出

要想对文件进行读取,就要用File对象构造一个Scanner对象。

Scanner in = new Scanner(Paths.get("myfile.txt"),"UTF-8");

要想写入文件,就需要构造一个PrintWriter对象,在构造器中,只需要提供文件名:

PrintWriter pw = new PrintWriter("myfile.txt","UTF-8");

如果该文件不存在,就创建一个文件。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值