一、概述
输入输出可以说是计算机的基本功能。作为一种语言体系,java中主要按照流(stream)的模式来实现。其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的数据流叫做输出流(outputStream)。
Java语言体系中,对数据流的主要操作都封装在http://java.io包中,通过http://java.io包中的类可以实现计算机对数据的输入、输出操作。在编写输入、输出操作代码时,需要用import语句将http://java.io包导入到应用程序所在的类中,才可以使用http://java.io中的类和接口。
二、输入语句
1.使用Scanner类:
(1)使用java.util包。 import java.util.*;
(2)构造Scanner类对象,它附属于标准输入流System.in。 Scanner s = new Scanner
(3)常用的next()方法系列: nextInt():输入整数 nextLine():输入字符串 nextDouble():输入双精度数 next():输入字符串(以空格作为分隔符)。
import java.util.*; public class DEMO_1 { public static void main(String[] args){ Scanner s = new Scanner System.out.print("输入你的姓名:"); String name = s.nextLine(); System.out.print("输入你的年龄:"); int age = s.nextInt(); System.out.println("姓名:" + name + " 年龄:" + age ); s.close(); //若没有关闭Scanner对象将会出现警告 } }
注释:代码第1行创建了一个Scanner类的对象,这个对象是用来输入的。后面的代码是从控制台的输入中取出一个值,赋值给对应的变量。
2.使用java.io.BufferedReader和java.io.InputStreamReader:
步骤:
(1)使用http://java.io包。 import java.io.*;
(2)构造 BufferedReader类对象,它附属于标准输入流System.in。
BufferedReader br = new BufferedReader(new InputStreamReader
public class Sandbox4 extends Sandbox2{ public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = null; while(true){ try { str = br.readLine(); }catch(IOException e){ e.printStackTrace(); } if(str.equals("END"))break; System.out.print(str); } }}
请注意:
(1)read方法:读取单个字符。 返回:作为一个整数(其范围从 0 到 65535 (0x00-0xffff))读入的字符,如果已到达流末尾,则返回 -1 ;
(2)readLine方法:读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行。 返回:包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null。
3、使用java.io.Console:
public class Sandbox4 extends Sandbox2{ public static void main(String[] args) { Console console = System.console(); if (console == null) { throw new IllegalStateException("Console is not available!"); } String str = null; while(true){ str = console.readLine("请输入"); if("END".equals(str))break; System.out.println(str); } }}
输入问题解惑:
答案:
注:该问题图片来源于百度知道。
三、输出语句
Java中的输出语句有以下四种:
System.out.println(1111);//换行打印System.out.print(1111);//不换行打印System.out.write(2222);//字节输出System.out.printf("%+8.3f\n", 3.14);//按格式输出
System.out.println(); 是最常用的输出语句,它会把括号里的内容转换成字符串输出到输出窗口(控制台),并且换行,当输出的是一个基本数据类型时,会自动转换成字符串,如果输出的是一个对象,会自动调用对象的toString();方法,将返回值输出到控制台
System.out.print(); 与第一个很相似,区别就是上一个输出后会换行,而这个命令输出后并不换行