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

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

A,数据从控制台的读入

一、利用BufferedReader从键盘读取数据:

1,读取字符串:

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

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

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,读取一行数据:

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 型数据:

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从键盘读取数据:

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

B,数据从显示屏的输出

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

  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从屏幕输出数据:

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

三、利用Console从屏幕输出数据:

public static void writeThroughConsole() throwsIOException {Console console = System.console();PrintWriterprint Writer = console.writer();printWriter.write("mmmm");printWriter.flush();
}

注:Console对象在Eclipse等开发环境中可能获取不到,这时,会报异常,在操作系统自带的命令行下进行执行即可。

提示:注意System.in和System.out这两个对象的使用,标准输入设备和标准输出设备的对象。

如有疏漏或错误之处,欢迎批评指正,谢谢。

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

  1. 在Java中,如何使一个字符串的首字母变为大写

    问题:在Java中,如何使一个字符串的首字母变为大写 我使用Java去获取用户的字符串输入.我尝试使他们输入的第一个字符大写 我尝试这样: String name;BufferedReader br ...

  2. Java中如何使用“点”分割字符串呢?

    下文笔者讲述Java代码中使用点分割字符串的方法分享,如下所示: 实现思路: 使用 字符串对象.split("\\.") 使用点分割字符串的示例分享 package com.jav ...

  3. Java中字节数组和十六进制字符串之间的转换

    1. 概述 在本教程中,我们将看看将字节数组转换为十六进制字符串,反之亦然的不同方法. 我们还将了解转换机制并编写我们的实现来实现这一点. 2. 字节和十六进制之间的转换 首先,我们来看看字节和十六进 ...

  4. JAVA 中无锁的线程安全整数 AtomicInteger介绍和使用

    转载自 http://blog.csdn.net/bigtree_3721/article/details/51296064 JAVA 中无锁的线程安全整数 AtomicInteger,一个提供原子操 ...

  5. 在Java中哪里可以获得“UTF-8”字符串文字?

    本文翻译自:Where to get "UTF-8" string literal in Java? I'm trying to use a constant instead of ...

  6. java中String值为空字符串与null的判断方法

    Java空字符串与null的区别 1.类型        null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null.        ""表 ...

  7. java中判断一个字符在字符串中出现的次数

    源代码: //java中判断一个字符出现的次数//在下面字符串中查找有几个啊public static void testFindChar(){String str = "啊!我爱你中国!啊 ...

  8. java中的greeting_JAVA基础知识——字符串

    1.从概念上讲,JAVA字符串就死Unicode字符序列,JAVA没有内置的字符串类型,而是在标准JAVA类库中提供了一个预定义类,叫做String.字符串用""括起来 2.子串: ...

  9. Java中按字母顺序对字符串字符进行排序的4种不同方法

    介绍 : 有时我们需要按字母顺序对字符串中的所有字符进行排序.由于String在Java中是不可变的,因此它将创建一个不同的字符串变量.例如,字符串" albert "在排序后将变 ...

最新文章

  1. 二、Silverlight中使用MVVM(二)——提高
  2. Android.mk 配置参数
  3. Mac环境下Redis的安装与配置
  4. 在浏览器中进行深度学习:TensorFlow.js (一)基本概念
  5. 水瓶座和什么座最配:天秤座,双子座,狮子座
  6. android 一个很漂亮的控件ObservableScrollView(含片段代码和源码)
  7. HDU多校4 - 6988 Display Substring(后缀自动机+二分)
  8. python提高——进程、线程、协程对比及代码实现
  9. Silverlight+WCF 新手实例 象棋 介绍II(九)
  10. 自定义char类型字段
  11. MacOS Big Sur 11.5.1 (20G80) OC 0.7.1 / Cl 5138 / PE 三分区原版黑苹果镜像
  12. 数据建模软件Chiner,颜值与实用性并存
  13. 基于MATLAB的AM调制解调
  14. kindle自定义屏保之自定义字帖
  15. codeblocks编译运行后出现无效的16位应用程序,不兼容64位windows
  16. 1024 程序员节,拿个勋章
  17. LaTeX插入参考文献
  18. Robocup3D第一次笔记
  19. 期货、股票行情、交易源码
  20. 第二章 大数据如此重要,引无数英雄竞折腰

热门文章

  1. Windows To Go,让Windows 8移动起来!
  2. [Altera在线教学].Altera SERDES应用教学,2小时10分钟,172张胶片
  3. 【DFS】LeetCode 52. N-Queens II
  4. Reactor模型-单线程版
  5. 在Adobe Html5 Extension的使用Nodejs的问题
  6. sqoop安装及使用
  7. mybatis 之 parameterType=list1
  8. Swift - 属性观察者(willSet与didSet)
  9. A Game USACO 3.3 (DP阵亡)
  10. iOS 程序 main函数之前发生什么