程序员在旅途

用这生命中的每一秒,给自己一个不后悔的未来!

0%

在Java中使用标准输入输出设备进行字符串,整数浮点数等的输入输出操作

  在Java语言中进行标准输入输出(键盘显示器)需要通过创建输入输出流对象的方式进行,一般情况下我们可以使用 BufferedReader,Scanner(JDK1.5以上)Console(JDK1.6以上)这三个类和System.in、System.out对象进行(包装设计模式)操作。

A,数据从控制台的读入

  一、利用BufferedReader从键盘读取数据:
  1,读取字符串:

1
2
3
4
5
  public static void readThroughBufferedReader()throws IOException{
BufferedReader bufferedReader = new BufferedReader(newInputStreamReader(System.in));
String readFromConsole = bufferedReader.readLine();//读取一行字符串
in tread = bufferedReader.read();//读取一个字符,返回字符的ASCII;
}

  注:在这种情况下要是想进行连续的整数读入(浮点数一样,以‘,’分割各个数据),并赋值给相应的变量,可采用正则表达式对字符串进行分割,当然也可以采用其他的方法,下面以正则表达式为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
 public static void readThroughBufferedReader()throws IOException{
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String readFromConsole = bufferedReader.readLine();
String[] words = readFromConsole.split(",");//使用正则表达式进行字符串的分割
float[] x = new float[words.length];
for (int i = 0; i < words.length; i++) {
x[i] = Float.parseFloat(words[i]);
}
for (float f : x) {
System.out.print(f+" ");
}
}
}

  二、利用Scanner从键盘读取数据:
  1,读取一行数据:

1
2
3
4
5
6
7
public static void readThroughScanner() {
Scanner scanner = new Scanner(System.in);
String bString = scanner.nextLine();
String aString = scanner.next();
System.out.println("aString: " +aString);
System.out.println("bString: " +bString);
}

  注:注意next和nextLine的区别,next以空格、回车符作为结束符,nextLine以回车符作为结束符,数据暂存在缓冲区中(所以,如果用next,数据数据含有空格,那么空格后的数据会作为二次输入结果)。
  2,读取integer或float 型数据:

1
2
3
4
5
6
 public static void readThroughScanner() {
Scanner scanner = new Scanner(System.in);
float a = scanner.nextFloat();
int b = scanner.nextInt();
System.out.println("a = " + a + ",b = " + b);
}

  三、利用System.in从键盘读取数据:

1
2
3
   public static void read ThroughSystemIn()throws IOException {
int c = System.in.read();//读取的是ASCII,可进行强转成字符型
}

B,数据从显示屏的输出

  一、使用System.out对象进行数据的输出:

1
2
3
4
5
6
7
    public static void writeThroughSystemOut() {
int x = 0;
double y = 3.2;
System.out.println("这是以字符串对象的形式输出");
System.out.println(x);//输出整数
System.out.printf("%d%s %.2f %+f",x,"这是以字符串对象的形式输出",y,y);//格式化输出,详细参考printf()函数
}

  二、利用BufferedWriter从屏幕输出数据:

1
2
3
4
5
6
7
  public static void writeThroughBufferedWriter()throws IOException {
BufferedWriterbuffered Writer = new BufferedWriter(newOutputStreamWriter(System.out));
bufferedWriter.write("这个是使用BufferedWriter");
bufferedWriter.newLine();
bufferedWriter.write('a');
bufferedWriter.flush();
}

  三、利用Console从屏幕输出数据:
1
2
3
4
5
6
  public static void writeThroughConsole() throwsIOException {
Console console = System.console();
PrintWriterprint Writer = console.writer();
printWriter.write("mmmm");
printWriter.flush();
}

  (注:Console对象在Eclipse等开发环境中可能获取不到,这时,会报异常,在操作系统自带的命令行下进行执行即可。)
  提示:
  注意System.in和System.out这两个对象的使用,标准输入设备和标准输出设备的对象。
  如有疏漏或错误之处,欢迎批评指正,谢谢。