java 输入输出 io
学习JAVA 输入输出篇
java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象。
常用的类有BufferedReader,Scanner。
实例程序:
一,利用 Scanner 实现从键盘读入integer或float 型数据
- import java.util.*;
- public class test {
- public static void main(String args[])
- {
- Scanner in=new Scanner(System.in); //使用Scanner类定义对象
- System.out.println("please input a float number");
- float a=in.nextFloat(); //接收float型数据
- System.out.println(a);
- System.out.println("please input a integer number");
- int b=in.nextInt(); //接收整形数据
- System.out.println(b);
- }
- }
二,利用 BufferedReader实现从键盘读入字符串并写进文件abc.txt中
- import java.io.*;
- public class Test
- {
- public static void main(String[] args) throws IOException
- {
- BufferedReader buf = new BufferedReader (new InputStreamReader(System.in));
- BufferedWriter buff = new BufferedWriter(new FileWriter("abc.txt"));
- String str = buf.readLine();
- while(!str.equals("exit"))
- {
- buff.write(str);
- buff.newLine();
- str = buf.readLine();
- }
- buf.close();
- buff.close();
- }
- }
关于JDK1.5 Scanner类的说明
Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.
Scanner reader=new Scanner(System.in);
然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:
next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()
使用nextLine()方法输入行中可能包含空格.如果读取的是一个单词,则可调用
.next()方法
三、Scanner和BufferedReader的区别
在命令行模式下要输入数据至程序中时,我们可以使用标准输入串对象System.in.但是,我们并不
经常直接使用它,因为System.in提供的
read方法每次只能读取一个字节的数据,而我们平时所应用的通常是读取一个字符串或者是一个数字,所以read方法所以提供的功能,对我们来说并没有太
大的用处.
在Java SE 6中,可以使用Scanner类取得用户的输入,Scanner类位于java.util包中,如果你要使用Scanner取得用户输入的话,要加上 import java.util.Scanner;这条语句.import的功能是告诉编译器,你将使用java.util包中的Scanner类.
我们来看一个例子:
- import java.util.Scanner;
- public class Test
- {
- public static void main(String[] args)
- {
- Scanner scan = new Scanner(System.in);
- System.out.println("请输入一个字符串:");
- System.out.println("您输入的字符串是:" + scan.next());
- }
- }
运行上面的程序,你将会看到你输入的字符串将在下面原样显示出来.
我们来看看这个程序中每条语句的意思:
new是创建一个对象,程
序中new的意思是创建了一个Scanner类的对象scan.但是在创建Scanner类的对象时,需要用System.in
作为它的参数,也可以将Scanner看作是System.in对象的支持者,System.in取得用户输入的内容后,交给Scanner来作一些处
理.
Scanner类中提供了多个方法:
next():取得一个字符串;
nextInt():将取得的字符串转换成int类型的整数;
nextFloat():将取得的字符串转换成float型;
nextBoolean():将取得的字符串转换成boolean型;
用Scanner获得用户的输入非常的方便,但是Scanner取得输入的依据是空格符,包括空格键,Tab键和Enter键.当按下这其中的任一
键时,Scanner就会返回下一个输入.
当你输入的内容中间包括空格时,显然,使用Scanner就不能完整的获得你输入的字符串.这时候我们可以考虑使用BufferedReader类取得输
入.其实在Java SE 1.4及以前的版本中,尚没有提供Scanner方法,我们获得输入时也是使用BufferReader的.
BufferedReader类位于java.io包中,所以要使用这个类,就要引入java.io这个包:import java.io.BufferedReader.
使用BufferedReader对象的readLine()方法必须处理java.io.IOException异常(Exception).
使用BufferedReader来取得输入,理解起来要复杂得多.但是使用这个方法是固定的,每次使用前先如法炮制就可以了.
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
String text = buffer.readLine();
readLine()方法会返回用户在按下Enter键之前的所有字符输入,不包括最后按下的Enter返回字符.
完整的示例程序如下:
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- public class TestBufferedReader
- {
- public static void main(String[] args) throws IOException
- {
- BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
- System.out.println("请输入一串字符串");
- String text = buffer.readLine();
- System.out.println("您输入的字符串是:" + text);
- }
- }
四,利用 System.in.read 实现从键盘读入char 型数据
- System.out.println("please input a char");
- char c=(char)System.in.read();
- System.out.println(c);
java 输入输出 io的更多相关文章
- java 输入输出IO流  RandomAccessFile文件的任意文件指针位置地方来读写数据
		RandomAccessFile的介绍: RandomAccessFile是Java输入输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出 ... 
- java 输入输出IO流:标准输入/输出System.in;System.out;System.err;【重定向输入System.setIn(FileinputStream);输出System.setOut(printStream);】
		Java的标准输入输出分别通过System.in和System.out来代表的,在默认情况下它分别代表键盘和显示器,当程序通过System.in来获取输入时,实际上是从键盘读取输入 当程序试图通过 S ... 
- java 输入输出IO 转换流-字符编码
		编码和其产生的问题: 计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字.英文.标点符号.汉字等字符是二进制数转换之后的结果. 按照某种规则,将字符存储到计算机中,称为编码 .反之,将存 ... 
- java 输入输出IO流 字节流| 字符流 的缓冲流:BufferedInputStream;BufferedOutputStream;BufferedReader(Reader in);BufferedWriter(Writer out)
		什么是缓冲流: 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率. 图解: 1.字节缓冲流BufferedInputStr ... 
- java 输入输出IO流 字符流 FileWriter FileReader
		为什么要使用字符流 当使用字节流读取文本文件时,可能会有一个小问题.就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储.所以Java提供一些字符流类,以字符为单位读写 ... 
- java 输入输出IO流:FileOutputStream FileInputStream
		什么是IO: 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了 ctrl+s ,可能文件就白白编辑了.当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里.那么数据都是在哪些设备上 ... 
- java 输入输出IO流 IO异常处理try(IO流定义){IO流使用}catch(异常){处理异常}finally{死了都要干}
		IO异常处理 之前我们写代码的时候都是直接抛出异常,但是我们试想一下,如果我们打开了一个流,在关闭之前程序抛出了异常,那我们还怎么关闭呢?这个时候我们就要用到异常处理了. try-with-resou ... 
- Java基础——IO流
		今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ... 
- Java - 文件(IO流)
		Java - 文件 (IO) 流的分类: > 文件流:FileInputStream | FileOutputStream | FileReader | FileWriter ... 
随机推荐
- 使用「max-height」实现自适应高度
			.tab-content{ max-height: 0; overflow: hidden; -webkit-transition: max-height .8s; -moz-transition: ... 
- Fedora 16设置开机自启动程序与Ubuntu的区别
			Ubuntu设置开机自启动脚本的方法是:修改/etc/init.d/rc.local这个文件,添加需要启动的程序即可,相关函数如下: void SetSysAutoBoot() { ] = {}; ; ... 
- 异常处理与MiniDump详解(转)
			一. 综述 总算讲到MiniDump了. Dump有多有用我都无法尽数,基本上属于定位错误修复BUG的倚天剑.(日志可以算是屠龙刀)这些都是对于那些不是必出的BUG,放在外面运行的时候出现的BUG ... 
- RGPJS 教程之八 创造场景
			开始画面 游戏画面 代码 <!DOCTYPE html> <html> <head> <script src="rpg-beta-2.js" ... 
- 为什么 Apple 开发者网站关闭是件好事?
			作者:趋势科技 Apple 的开发者中心网站在 7 月 18 日因为安全漏洞或攻击而关闭.在他们的通知里,Apple 公司表示,这起安全事件可能导致开发商的姓名.通讯地址和电子邮件地址被盗取,虽然该公 ... 
- 开源文件比较工具:WinMerge、KDiff3、diffuse
			为了寻找免费的BeyondCompare的替代品,最后经过实用,找到如下一些: 1.diffuse 感受:如果仅仅是比较两个文本类的文件,这个软件也就够用了. 安装好后,对着文件点击右键,会出现“Op ... 
- ASP.NET MVC- HtmlHelper的用法
			在ASP.NET MVC框架中没有了自己的控件,页面显示完全就回到了写html代码的年代.还好在asp.net mvc框架中也有自带的HtmlHelper和UrlHelper两个帮助类.另外在MvcC ... 
- VC、MFC中设置控件的背景色、标题、字体颜色、字体要注意的地方[转]
			在MFC中设置控件的背景色.字体.字体颜色.标题等属性主要是利用OnCtlColor函数来实现. 如: HBRUSH CAlarm::OnCtlColor(CDC* pDC, CWnd* pWnd, ... 
- android布局太深导致的 java.lang.StackOverflowError
			E/AndroidRuntime( 1900): java.lang.StackOverflowError E/AndroidRuntime( 1900): at android.graphi ... 
- GitHub 上排名前 100 的 Android 开源库进行简单的介绍
			若有任何疑问可通过邮件或微博联系我 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开 ... 
