Java.关于IO代码复用
2010-12-31 10:40
351 查看
重视IO程序代码的复用 System.in是连接到键盘的,是InputStream类型的实例对象。System.out连接到显示器,是PrintStream类的实例对象。 不管各种底层物理设备用什么方式实现数据的终止点,InputStream的read方法总是返回-1来表示输入流的结束 在windows下,按下Ctrl+Z组合键可以产生键盘输入流的结束标记,在linux下则是按下Ctrl+D组合键来产生键盘输入流的结束标记。 要编程从键盘上连续读取一大段数据时,应尽量将读取数据的过程放在函数中完成,使用-1来作为键盘输入的结束点。在改函数中编写的程序不应直接使用System.in读取数据,而是用一个InputStream类型的形式参数对象来读取数据,然后将System.in作为实参传递给InputStream类型的形式参数来调用该函数。 用基类类型的对象作为形参,然后传递子类类型对象来使用,以不变应万变。提高服用性
import java.io.*; class ByteArrayTest { public static void main(String[] args) { // TODO: Add your code here /* String tmp="abcdefjklmnopqrst"; byte [] src=tmp.getBytes(); ByteArrayInputStream input=new ByteArrayInputStream(src); ByteArrayOutputStream output=new ByteArrayOutputStream();//这里不用传递字节数组,ByteArrayOutputStream会自动创建一个32字节的缓冲区用来写入数据"Creates a new byte array output stream." transform(input,output); byte[] result=output.toByteArray(); //public byte[] toByteArray() "Creates a newly allocated byte array. Its size is the current size of this output stream and the valid contents of the buffer have been copied into it." System.out.println(new String(result)); */ transform(System.in,System.out); } public static void transform(InputStream in,OutputStream out){ int ch=0; try{ while((ch=in.read())!=-1){ int upperCh=/*(int)*/Character.toUpperCase((char)ch); //char表示的范围比int小 out.write(upperCh); } }catch(Exception e){ e.printStackTrace(); } } }
相关文章推荐
- 为什么在JavaProject中没问题的代码到Android中就报错 关于UrlConnectoin java.io.EOFExceptoin
- 黑马程序员------Java_IO关于缓冲区提高代码复用性
- Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
- 关于svn上传的代码每个java文件上都出现class问件暨代码编译路径的若干问题
- Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
- JAVA基础知识之网络编程——-关于阻塞IO/非阻塞IO/同步IO/异步IO的一些参考文章
- 关于Java代码方法后面的分号
- 关于“ java.io.FileNotFoundException: C:\Program%20Files\Apache%20Software%20Foundation\”的类似问题
- 在JAVA中实现C++代码的复用
- 关于串行化,关于java.io.Serializable接口
- 晒一个Java的快速io代码
- java中NIO和IO的关于阻塞与非阻塞的问题
- 关于java web中自动运行一段代码的一些事儿(计时器、Date比较大小、自动运行代码)
- 关于java IO 过程当中同时读写的问题
- 关于安卓开发当中通过java自带的HttpURLConnection访问XML的java.io.EOFException问题
- 关于绿盾解密功能java代码。
- Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
- 关于java代码中静态代码块、非静态构造代码块以及构造方法的执行顺序
- 2016.08.19-java-关于网页图片的下载完整代码
- 关于java io知识的初步了解