`
msn877763580
  • 浏览: 81138 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Java IO 之System类及其它

阅读更多

System类管理标准输入输出流和错误流

一、使用System.out作为输出流

 

package cn.sisy.io;
import java.io.*;
public class SystemDemo01 {
	public static void main(String[] args)throws Exception {
		//抽象类通过子类实现不同的功能
		OutputStream out = null;
		// System.out是PrintStream,是OutputStream子类
		//谁为我的抽象类实例化,那么我的输出就是向着谁的
		out = System.out;
		// 现在的out对象具备了向屏幕上打印内容的能力
		String str = "Hello,World" ;
		out.write(str.getBytes()) ;
		out.close() ;
	}
}

 二、使用PrintWriter结合System.out提升打印能力

打印流包括PrintStream和PrintWriter

 

package cn.sisy.io;
import java.io.*;
public class SystemDemo02 {
	public static void main(String[] args)throws Exception {
		
		PrintWriter out = new PrintWriter(System.out) ;
		// 具备了向文件中打印数据的能力
		//打印的能力得到了增强
		out.println(true) ;
		out.println(30) ;
		out.println("Hello,World") ;
		out.close() ;
		
	}
}

 true

30

Hello,World

三、使用键盘输入流System.in

 

package cn.sisy.io;
import java.io.*;
public class SystemDemo03 {
	public static void main(String[] args)throws Exception {
		
		InputStream in = null ;
		// 数据等待键盘的输入
		in = System.in ;
		byte b[] = new byte[1024] ;
		// 读的时候是等待用户的输入
		int len = in.read(b) ;
		in.close() ;
		System.out.println("输入的内容为:"+new String(b,0,len)) ;
		
	}
}

 

 

a b c d

输入的内容为:a b c d

四、BufferedReader以及转换流InputStreamReader和OutputStreamReader

思考上面的程序容易发现,键盘输入的大小事收数组大小限制的,这样可能会导致中文乱码的情况产生。(*一个中文是两个字节)

当然程序可以通过改成从键盘一直读数据的方式来解决大小限制的问题,但我们下面介绍一种更加好的方式。

BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 

可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。 

通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如, 

 BufferedReader in= new BufferedReader(new FileReader("foo.in"));

 将缓冲指定文件的输入。如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。 

通过用合适的 BufferedReader 替代每个 DataInputStream,可以对将DataInputStream 用于文字输入的程序进行本地化。

 

InputStreamReader和OutputStreamReader:前者将输入字节流转换成字符流, 后者将输出字符流转换成字节流。

 

import java.io.* ;
public class SystemDemo04{
	public static void main(String args[]){

		BufferedReader buf = null ;
		// 此处只是准备了要从键盘中读取数据
		buf = new BufferedReader(new InputStreamReader(System.in)) ;
		String str = null ;
		for(int i=0;i<2;i++){
			try{
				System.out.print("请输入内容:") ;
				str = buf.readLine() ;
			}
			catch (Exception e){
			}
			System.out.println("输入的内容为:"+str) ;
			System.out.println("--------------------------------") ;
		}
	}
}
 

 

分享到:
评论

相关推荐

    Java之IO流学习总结

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据...

    Java开发详解.zip

    031208_【第12章:JAVA IO】_System类对IO的支持笔记.pdf 031209_【第12章:JAVA IO】_BufferedReader笔记.pdf 031210_〖第12章:JAVA IO〗_IO操作实例笔记.pdf 031211_【第12章:JAVA IO】_Scanner笔记.pdf 031212_...

    Java基础知识点总结.docx

    &lt;java.lang&gt;System 89 &lt;java.lang&gt;Runtime 90 &lt;java.lang&gt;Math 90 &lt;java.lang&gt;.Date:日期类,月份从0—11 92 &lt;java.lang&gt; Calendar:日历类 93 十六、 IO流:用于处理设备上数据 ★★★★★ 94 IO流的概念 95 字符...

    Java读取资源文件工具类--ReadConfigation(java源码)

    import java.io.File; import java.io.FileInputStream; import java.util.Properties; public class ReadConfigation{ /** * 属性文件全名 */ private static final String PFILE ="Config....

    Java2游戏编程.pdf

    4.1.6 java.lang.System 4.1.7 java.lang.Cloneable 4.1.8 java.lang.Thread 4.2 java.io包 4.3 java.util包 4.3.1 java.util.StringTokenizer 4.3.2 java.util.Random 4.3.3 Java2集合框架 4.4 总结 4.5 练习 第2篇...

    java自学之道

    四、IO流及异常处理 1、流和文件 1.1 流 1.2 文件 2、常用流类 2.1 字节流 2.1.1 InputStream(输入流) 2.1.2 OutputStream(输出流) 2.1.3 FileInputStream(文件输入流) 2.1.4 FileOutputStream(文件输出流) 2.1.5...

    张孝祥Java就业培训教程.pdf

    本书一步步引导读者深入,使读者轻松愉快、兴趣盎然、水到渠成、潜移默化地掌握Java编程及许多其他的软件开发思想。 本书语言流畅,内容翔实,分析透彻,是一本适合广大计算机编程爱好者的优秀读物。本书结构合理,...

    疯狂JAVA讲义

    1.2 Java的竞争对手及各自优势 4 1.2.1 C#简介和优势 4 1.2.2 Ruby简介和优势 4 1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6 1.3.2 Java程序的运行机制和JVM 6 1.4 开发...

    java 面试题 总结

    知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以...

    java 编写文件上传类简单易用

    import java.io.*; import javax.servlet.*; import javax.servlet.http.*; //示例程序:记录下Form提交上来的数据,并存储到Log文件中 public class ReceiveServlet extends HttpServlet { public void doPost...

    java综合试题(面试题)

    import java.io.*; public class MyClass { public static void main(String[] args) { int j=1; for(int i=1; _______; i++) { System.out.println(i+"*"+j+"="+_______); } } } 25. class (c++)+"\t" ...

    毕业设计 健身房管理系统 java后端.zip

    例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。 分布性 Java设计成支持...

    基于java的校园二手交易系统毕业设计.zip

    例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。 分布性 Java设计成支持...

    毕业设计管理系统java服务端,采用spring mvc.zip

    例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。 分布性 Java设计成支持...

    基于java web技术的毕业设计商城项目。.zip

    例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。 分布性 Java设计成支持...

    毕业设计,关于新浪微博API的Java编程..zip

    例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。 分布性 Java设计成支持...

    本科毕业设计项目-Java电影推荐系统-管理后台.zip

    例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。 分布性 Java设计成支持...

    毕业设计基于Cesium时空数据可视化后台Java SSM框架.zip

    例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。 分布性 Java设计成支持...

    使用Spring Boot的小型诊所信息系统,毕业设计Java版.zip

    例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。 分布性 Java设计成支持...

    毕业设计---蚁群算法实现vrp问题java版本.zip

    例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。 分布性 Java设计成支持...

Global site tag (gtag.js) - Google Analytics