IO流demo--【J2SE】
2015-09-19 21:42
435 查看
转换流:
InputStreamReader和OutputStreamWriter用于字节数据到字符数据之间的转换。InputStreamReader需要和InputStream套接。
OutputStreamWriter需要和OutputStream套接。
转换流在构造时可以指定其编码集合。
import java.io.*; public class TestTransForm1{ public static void main(String[] args){ try{ OutputStreamWriter osw=new OutputStreamWriter(//字符流流向字节流的桥梁 new FileOutputStream("d:\\bak\\char.txt"));//文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流 osw.write("microsoft ibmsunapplehp"); System.out.println(osw.getEncoding()); osw.close(); osw=new OutputStreamWriter( new FileOutputStream("d:\\bak\\char.txt",true), "ISO8859_1"); osw.write("microsoft ibmsunapplehp"); System.out.println(osw.getEncoding());//返回此流使用的字符编码的名称。 osw.close(); }catch (IOException e){ e.printStackTrace();//打印出异常和更深层次的调用信息。 } } }
import java.io.*; public class TestTransForm2{ public static void main(String[] args){ InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); String s=null; try{ s=br.readLine();//输入一个数 while(s!=null){ if(s.equalsIgnoreCase("exit"))break;// 将此 String 与另一个 String 比较,不考虑大小写 System.out.println(s.toUpperCase());//使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 s=br.readLine();// 读取一个文本行。 } br.close(); }catch (IOException e){ e.printStackTrace();//打印出所有的调用情况和错误信息 } } }
数据流:
DataInputStream和DataOutputStream分别继承自InputStream和OutputStream,它属于处理流。需要套接在InputStream和OutputStream类型的结点流上。DataInputStream和DataOutputStream提供了可以存取与机器无关的Java原始类型数据的方法。
import java.io.*; public class TestDataStream{ public static void main(String[] args){ ByteArrayOutputStream baos=new ByteArrayOutputStream();//此类实现了一个输出流,其中的数据被写入一个 byte 数组 // 创建一个新的数据输出流,将数据写入指定基础输出流。 DataOutputStream dos=new DataOutputStream(baos); try{ dos.writeDouble(Math.random()); dos.writeBoolean(true); ByteArrayInputStream bais=new ByteArrayInputStream(baos.toByteArray()); System.out.println(bais.available()); DataInputStream dis=new DataInputStream(bais) ; System.out.println(dis.readDouble()); System.out.println(dis.readBoolean()); dos.close(); dis.close(); }catch(IOException e){ e.printStackTrace(); } } }
相关文章推荐
- 条款37:绝不重新定义继承而来的缺省参数值(Never redefine a function's inherited default parameter value)
- Labeling Balls(拓扑排序wa)
- 个人日记-安卓里OnPageChangeListener的坑爹
- 超级删除PowerTools
- sublime 常用快捷键
- Minimum Cut(2015年吉林网络赛)
- hdu5459Jesus Is Here
- 黑马程序员之---C学习笔记之printf与scanf使用及注意事项
- 使用存取方法来设置Property value
- 测试用例的编写
- 傻瓜式操作Nagios图解
- 幸福的往事
- C语言_删除相同的字符(华为笔试题)
- 输入一个字符串,判断该字符串插入一个字符,能否使其成为回文字符串
- 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
- 多路径路由算法选择(3)——路由器的简单介绍
- android性能测试内存泄漏
- java线程join的意思(转自http://zjj1211.blog_51cto_com)
- 模拟创建类变量,static变量加类方法,单例
- Java基础知识强化48:Java中哈希码