首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

JAVA流操作(1)数据流

JAVA流操作(1)数据流

  • <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
返回列表