汉字编码和流的应用和对象串行化

汉字编码

UTF-8

(new InputStreamReader(new FileInputStream("a.txt"),"utf8"))

可以转换成UTF8形式的编码

 

 

流的应用

try {
    Socket socket = new Socket(InetAddress.getByName("localhost"), 12345);
    PrintWriter out = new PrintWriter(
            new BufferedWriter(
                    new OutputStreamWriter(
                            socket.getOutputStream())));
        out.println("hello");
        out.close();
        socket.close();
} catch (IOException e) {
    e.printStackTrace();
}

阻塞/非阻塞

read()函数是阻塞的,在读到所需的内容之前会停下来等

使用read()的更"高级"的函数,如nextInt()、readLine()都是这样的

所以常用单独的线程来做socket读的等待,或使用nio的channel选择机制

对于socket,可以设置SO时间setSoTimeout(int timeOut)

 

对象串行化

对象通过写出描述自己状态的数值来记录自己,这个过程叫对象的串行化(Serialization一连续)。
串行化的主要任务是写出对象实例变量的数值

 

 

 

posted @ 2022-06-12 21:08  魔光领域  阅读(30)  评论(0编辑  收藏  举报