JAVA流操作(1)数据流
2015-07-24 10:24
232 查看
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">//例程1:</span>
package dataInputStreamAndPrintStreamDemo; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.PrintStream; //示范如何自键盘读入字符串,并使用DataInputStream,PrintStream类将程序执行显示在屏幕(标准输出)上 public class DataInputStreamAndPrintStreamDemo { public static void main(String[] args) { int count; byte input[] = new byte[256]; String InputString; // 键盘读入 DataInputStream stdin = new DataInputStream(System.in); //提高执行效率,几乎所有的InputStream类都可以被BufferedStream类包覆(wrap)来提高I/O效率 BufferedInputStream bufin = new BufferedInputStream(stdin); // 屏幕输出 DataOutputStream stdout = new DataOutputStream(System.out);// 将结果输出至屏幕 BufferedOutputStream bufout = new BufferedOutputStream(stdout);// 提高输出效率 PrintStream p = new PrintStream(System.out);// 将结果输出至屏幕 try { if (bufin.markSupported()) { p.println("支持串流标记:是");// 使用PrintStream输出 p.println("输入字符串,结束请按【Enter】...\n" + "=>"); //使得流在第一个位被作上标记(mark),并且会保留256位(mark(256)) bufin.mark(256); //读取字节并存放在指定的数组中 count = bufin.read(input); p.println("读入字符数:" + count); p.print("你输入的字符串为:"); // 写入流,只是将数据写入流中而已,并不输出数据 // 所以在其后必须使用flush()函数将流中的数据强制输出 bufout.write(input, 0, count); bufout.flush();// 强制输出至指定的输出装置 bufin.reset();// 将读取位置移至标记处,也就是流中的第一位 bufin.read(input, 0, count); p.print("字符串的前半段:"); bufout.write(input, 0, count / 2); //相当于System.out.println(); bufout.write((int)('\n')); bufout.flush(); bufin.reset(); bufin.skip(count / 2); bufin.read(input, 0, count / 2); p.print("字符串的后半段:"); bufout.write(input, 0, count / 2); bufout.flush(); } else { System.out.println("字符串流标记:否"); } // 关闭流 p.close(); stdin.close(); bufin.close(); stdout.close(); bufout.close(); } catch (IOException E) { System.out.println("发生I/O错误!!!"); } } } //其实我们对PrintStream类应该很熟悉才对,System.out就是一个PrintStream类对象,其提供的print()和println()函数 //几乎可显示所有数据类型的变量
//例程2:package iotest; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.util.logging.Level; import java.util.logging.Logger; public class IOtest { public static void main(String[] args) throws IOException { byte buf[] = new byte[255]; byte bufin[] = new byte[255]; //只能用byte格式将数据送入文件 String str = "输入的文字:"; buf = str.getBytes(); try { FileOutputStream fout = new FileOutputStream("test.txt"); PrintStream p = new PrintStream(fout); p.println("输入的文字~~~~~~~"+'\n'); //方式一 fout.write(buf, 0, buf.length); //方式二 fout.write(buf); //方式三 //fout.flush(); //fout.close(); System.out.println("快输入文字:"); int bytes = System.in.read(bufin, 0, 255); //追加文本!!!!!!!!!!!!!!!! //fout = new FileOutputStream("test.txt",true); fout.write(bufin, 0, bytes); } catch (FileNotFoundException ex) { Logger.getLogger(IOtest.class.getName()).log(Level.SEVERE, null, ex); } } }
//结果:
//输入的文字~~~~~~~ //输入的文字:输入的文字:鍩庡競宸ヤ笟 fdsfdssssssssssssssssssssssssssss
相关文章推荐
- Spring 的扫描
- Java连接mysql数据库
- Java IO学习【5】复制一个文本文件
- java并发编程实战第五章(3)异步运行任务
- Spring+iBatis+Atomikos实现JTA事务
- java中全排列的生成算法汇总
- svn切换用户名-密码
- Java中InputStream和OutputStream的区别
- java正则表达式之捕获分组与Back引用
- spring mvc 自定义拦截器
- eclipse中奇怪的是乱码
- spring 定时器
- java虚拟机_jvm_java内存区域
- myeclipse发布项目很慢。
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- java.lang.NoClassDefFoundError: ActionSupport异常和Action class not found异常
- java虚拟机_jvm(1)
- Java 动态代理机制分析及扩展,第 1 部分
- 在eclipse上以link方式安装CDT插件
- JAVA—Day01