控制台I/O-标准输入读取数据-格式化输入,日期

一、设备分类

1.标准输入设备:键盘

2.标准输出设备:终端窗口

3.标准错误设备:通常也使用终端窗口

二、Java语言使用java.lang.System类中的三个公共静态变量来支持

1.System.in:是InputStream对象,指用户键盘。

2.System.out:PrintStream 对象,指启动Java应用程序的终端窗口,PrintStream是OutputStream流的子类。

3.System.err:PrintStream 对象,指启动Java应用程序的终端窗口。

重新定义流,使其指向其他流目标:System.setIn(),System.setOut(),System.setErr();

三、标准输入读取数据

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class SystemIn {
    //标准输入读取数据
    public static void main(String[] args) {
        System.out.println("hello");//访问标准输出设备
        System.err.println("hello err");//访问标准错误设备

        InputStream is = System.in;
        InputStreamReader isr  = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        try {

            String line = br.readLine();
            while(line != null){
                System.out.println(line);
                line = br.readLine();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(br!=null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

}

四、格式化输入

import java.io.File;
import java.io.InputStream;
import java.util.Scanner;

public class ScannerIn {
    //格式化输入  文本扫描器
    public static void main(String[] args) {

        File file = new File("");

        InputStream is = System.in;
        try {
            Scanner scanner = new Scanner(is);
            //Scanner scanner = new Scanner(file);

            while(scanner.hasNext()){

                if(scanner.hasNextInt()){
                    int i = scanner.nextInt();
                    System.out.println("整数: "+i);
                }else if(scanner.hasNextDouble()){
                    Double d = scanner.nextDouble();
                    System.out.println("小数: "+d);
                }else{
                    String s = scanner.next();
                    System.out.println("字符串: "+s);
                }

            }
            scanner.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

五、格式化输出

%s       格式化成字符串,toString();

%b    参数为null返回false,如果参数为Boolean值或者为Boolean,结果为false或true否则为true

%c       一个字符(char),Unicode字符。

%d    有符号十进制整数(int)

%o    无符号八进制整数

%x    使用十六进制数字0f的无符号十六进制整数

%f     单精度浮点数(默认float)、十进制记数法(%.nf  这里n表示精确到小数位后n位.十进制计数)

%g    科学计数法

%n      换行符

%%     打印一个百分号

1.%:表示格式说明的起始符号,不可缺少。

2.-:有-表示左对齐输出,如省略表示右对齐输出。

3.0:有0表示指定空位填0,如省略表示指定空位不填。

4.m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。

5.l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。

double d = 345.678;
String s = "hello!";
int i = 1234;
//"%"表示进行格式化输出,"%"之后的内容为格式的定义。
System.out.printf("%f",d);//"f"表示格式化输出浮点数。
System.out.printf("%9.2f",d);//"9.2"中的9表示输出的长度,2表示小数点后的位数。
System.out.printf("%+9.2f",d);//"+"表示输出的数带正负号。
System.out.printf("%-9.4f",d);//"-"表示输出的数左对齐(默认为右对齐)。
System.out.printf("%+-9.3f",d);//"+-"表示输出的数带正负号且左对齐。
System.out.printf("%d",i);//"d"表示输出十进制整数。
System.out.printf("%o",i);//"o"表示输出八进制整数。
System.out.printf("%x",i);//"d"表示输出十六进制整数。
System.out.printf("%#x",i);//"d"表示输出带有十六进制标志的整数。
System.out.printf("%s",s);//"d"表示输出字符串。
System.out.printf("输出一个浮点数:%f,一个整数:%d,一个字符串:%s",d,i,s);//可以输出多个变量,注意顺序。
System.out.printf("字符串:%2$s,%1$d的十六进制数:%1$#x",i,s);//"X$"表示第几个变量。 

六、格式化日期

1.例子

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
String datestr = sdf.format(new Date());
时间: 2024-07-31 04:32:05

控制台I/O-标准输入读取数据-格式化输入,日期的相关文章

JAVA BufferedReader 类从标准输入读取数据

1,建立输入流: BufferedReader localReader = new BufferedReader( new InputStreamReader(System.in)); System.in 表示标准输入,一般指键盘. 建立输入流,从标准输入读取数据到缓冲区中. 当在标准输入中输入一行字符串时,按回车之后,这行数据就会被读取到缓冲区中. 比如: abc  \r\n(表示按下回车键) 那么msg就会赋值为 abc String msg = null; while ((msg = lo

IO-04. 混合类型数据格式化输入(5)

IO-04. 混合类型数据格式化输入(5) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 乔林(清华大学) 本题要求编写程序,顺序读入浮点数1.整数.字符.浮点数2,再按照字符.整数.浮点数1.浮点数2的顺序输出. 输入格式: 输入在一行中顺序给出浮点数1.整数.字符.浮点数2,其间以1个空格分隔. 输出格式: 在一行中按照字符.整数.浮点数1.浮点数2的顺序输出,其中浮点数保留小数点后2位. 输入样例: 2.12 88 c 4

06-0. 混合类型数据格式化输入(5)

本题要求编写程序,顺序读入浮点数1.整数.字符.浮点数2,再按照字符.整数.浮点数1.浮点数2的顺序输出. 输入格式: 输入在一行中顺序给出浮点数1.整数.字符.浮点数2,其间以1个空格分隔. 输出格式: 在一行中按照字符.整数.浮点数1.浮点数2的顺序输出,其中浮点数保留小数点后2位. 输入样例: 2.12 88 c 4.7 输出样例: c 88 2.12 4.70 1 #include <stdio.h> 2 3 int main() 4 { 5 double a, d; 6 int b;

编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。

编写一个程序,从标准输入读取几行输入.每行输入都要打印到标准输出上,前面加上行号. 在编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制. #include <stdio.h> #include <stdlib.h> int main() { char ch = '0'; int n = 1; int flag = 1; while (1) { printf("please input the line: "); do { scanf("%c

IO-04. 混合类型数据格式化输入

本题要求编写程序,顺序读入浮点数1.整数.字符.浮点数2,再按照字符.整数.浮点数1.浮点数2的顺序输出. 输入格式: 输入在一行中顺序给出浮点数1.整数.字符.浮点数2,其间以1个空格分隔. 输出格式: 在一行中按照字符.整数.浮点数1.浮点数2的顺序输出,其中浮点数保留小数点后2位. 输入样例: 2.12 88 c 4.7 输出样例: c 88 2.12 4.70C语言代码实现: 1 #include <stdio.h> 2 3 int main() 4 { 5 int i; 6 char

PAT IO-04 混合类型数据格式化输入(5)

1 /* 2 *PAT IO-04 混合类型数据格式化输入(5) 3 *2015-08-01 4 作者:flx413 5 */ 6 #include<stdio.h> 7 int main() 8 { 9 int a; 10 float b, d; 11 char c; 12 scanf("%f%d %c%f", &b, &a, &c, &d); 13 printf("%c %d %.2f %.2f", c, a, b,

【Spring学习笔记-MVC-9】SpringMVC数据格式化之日期转换@DateTimeFormat

作者:ssslinppp       1. 摘要 本文主要讲解Spring mvc数据格式化的具体步骤: 并讲解前台日期格式如何转换为java对象: 在之前的文章<[Spring学习笔记-MVC-8]SpringMVC之类型转换Converter>(对应链接: http://www.cnblogs.com/ssslinppp/p/4598102.html ) 中讲解了Spring MVC的类型转换,在此回顾下. 数据格式化,从本质上讲属于数据转换的范畴.Spring就是基于数据转换框架植入&q

c语言从文件中读取数据作为输入

这次在厦门大学夏令营机试中遇到一个问题,它要求数据输入一定要从文件中输入,而不是从命令行中输入. 当时我并不知道这个,所以机试我就GG了,回来之后立马翻看了书,查了资料.现在是搞清楚了. 1 #include <stdio.h> 2 3 // 计算斐波拉契数列 4 5 int fib(int n) 6 { 7 if(n == 0 || n == 1) 8 return n; 9 else 10 return fib(n-2) + fib(n-1); 11 } 12 13 int main()

编写一个程序,从标准输入读取几行输入,设置行号

#include<stdio.h> int main() {     int ch;     int i=1,j=1;     printf("请输入:\n");     while((ch=getchar()) != EOF)     {         if(j==1)         {             printf("%d.",i);             i++;             j++;         }