Java常用的输入输出介绍
输入输出可以说是计算机的基本功能。java中主要按照流(stream)的模式来实现。其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的数据流叫做输出流(outputStream)。以程序作为中心,从程序写入数据到其他位置(如文件、屏幕显示)是输出流,将数据读入程序中(如从键盘、文件输入)则是输入流。
Java语言体系中,对数据流的主要操作都封装在包中,用import语句将包导入,才可以使用包中的类和接口。
Java在线中文文档 https://tool.oschina.net/apidocs/apidoc?api=jdk-zh
先看输出
使用System.out.println()或者System.out.print(),这是System.out的两个方法(method、类成员函数)两者差不多,能输出任意类型的数据,不同在于前者输出后会换行,后者输出后不换行。例
public class Main1{
public static void main(String[] args){
System.out.println("hello!");
System.out.print("abc");
System.out.print("123");
}
}
再看输入
下面介绍java怎么从键盘输入数据? 请看下面的例子。
☆输入单个字符的例
import java.io.*;
public class Main2{
public static void main(String[] args)throws IOException{
char c=(char)System.in.read();
System.out.println(c);
}
}
☆输入数或者字符串
import java.io.*;
import java.util.*;
public class Main3{
public static void main(String[] args)throws IOException{
Scanner cin=new Scanner(System.in);
System.out.print("Please enter an integer:");
int a=cin.nextInt();
System.out.println(a);
System.out.print("Please enter a floating-point number:");
double b=cin.nextDouble();
System.out.println(b);
System.out.print("Please enter a word:");
String str=cin.next();
System.out.println(str);
}
}
注意 :用记事本写java源码,1)如果代码中含有中文字符,编码选用ANSI,否则编译通不过,提示 “错误: 编码 GBK 的不可映射字符”;2)文件名中点后面的后缀(扩展名)不要错了。
例、使用Scanner类,输入两个整数求和:
import java.util.Scanner;
public class MainA {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入两个整数(两数之间用空格分隔):"); //提示
int a=sc.nextInt(), b=sc.nextInt();
System.out.println(a+b);
}
}
用记事本编写保存源代码,参见下图:
编译运行,参见下图:
☆使用BufferedReader类输入,例:
import java.io.*;
public class AppInOut
{
public static void main(String[] args)
{
String s=""; //定字符串变量
int n=0; //定整型变量
double d=0; //定义双精度型变量
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入一个字符串: ");
s = in.readLine();
System.out.println("你输入字符串是: "+s);
System.out.print("请输入一个整数: ");
s = in.readLine();
n = Integer.parseInt(s);
System.out.println("你输入的整数是: "+n);
System.out.print("请输入一个实数: ");
s = in.readLine();
d =Double.parseDouble(s);
System.out.println("你输入实数是: "+d);
}catch(IOException e) {}
}
}
☆上面都是字符界面的例子,下面看一个使用图形界面的例子:
import java.awt.*;
import java.awt.event.*;
public class AppGraphInOut
{
//主类
public static void main ( String args[] )
{
new AppFrame();
}
}
class AppFrame extends Frame implements ActionListener
{
TextField in = new TextField(6);
Button btn = new Button("求立方");
Label out = new Label(" ");
public AppFrame()
{
setLayout(new FlowLayout());
add( in );
add( btn );
add( out );
btn.addActionListener(this);
setSize( 400,100 );
//显示
setVisible(true);
//窗口增加个监听器——AWT的Frame窗口点击右上角的 × ,默认是不能关闭的,可如下处理
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void actionPerformed( ActionEvent e)
{
String s = in.getText();
double d = Double.parseDouble( s );
double q = d * d * d;
out.setText( d+"的立方是:"+ q);
}
}
编译运行,参见下图: