Java Day 28

IO流(2) 

         打印流和转换流模拟聊天的功能实现

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class PrintStreamChatTest {
        public static void main(String[] args) {
            BufferedReader br = null;
            PrintStream ps = null;
            try {
                //构造方法需要Reader类型的引用,但Reader是抽象类,实参只能传递子类的对象, 字符流
                //System.in 代表键盘类型输入,而且是InputStream类型的 字节流
                br = new BufferedReader(new InputStreamReader(System.in));
                ps = new PrintStream(new FileOutputStream("d:/a.txt"));
                //声明一个boolean类型的变量作为发送方的代表
                boolean flag = true;
                while (true) {
                    System.out.println("请"+(flag? "A":"B")+"输入要发送的聊天内容");
                    String str = br.readLine();
                    if ("bye".equals(str)) {
                        System.out.println("聊天结束");
                        break;
                    }
                    Date d1 =new Date();
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    ps.println(sdf.format(d1)+"\n"+(flag?"A说":"B说")+str);
                    flag = !flag;
                }

            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                ps.close();
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
}

        DateOutputStream类

import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class DataOutputStreamTest {
    public static void main(String[] args) {
        DataOutputStream dos = null;

        try {
             dos = new DataOutputStream(new FileOutputStream("d:/a.txt"));
            int num = 66;//66: 0000 0000 ... 0100 0010 =>   B
            dos.writeInt(num);
            System.out.println("写入数据成功");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(null!= dos) {
                try {
                    dos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

        DateInputStream类 

Java Day 28_第1张图片

        ObjectOutputStreamTest类

Java Day 28_第2张图片

         Transient关键字

提示信息 - 拜师教育 - 师徒制教育平台|人工智能培训|大数据培训|JAVA培训|PYTHON培训| - Powered By EduSoho


        RandomAccessFile类

import java.io.IOException;
import java.io.RandomAccessFile;

public class RandomAccessFileTest {
    public static void main(String[] args) {
        RandomAccessFile raf = null;
        try {
            raf = new RandomAccessFile("d:/a.txt","rw");//可读可写
            //对文件内容进行随机读写
            raf.seek(3);//设置距离文件开头位置的偏移量,此处为从开头位置向后偏移3个字节
            int res = raf.read();
            System.out.println("读取到的单个字符是"+(char)res); //不转换的话读取到的是字符的ASCII码
            raf.write('2');//覆盖而不是插入
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(null!= raf){
                try {
                    raf.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

你可能感兴趣的:(java,开发语言,jvm)