关闭

JAVA高级视频02_IO输入与输出日记3(02-06到10)

标签: iojavastringimportbytethread
337人阅读 评论(0) 收藏 举报
分类:

02-06

PipedOutputStream

PipedInputStream

在应用程序中创建管道通信。字节类型数据的读写

例子:

import java.io.IOException;

import java.io.PipedOutputStream;

 

 

public class Sender extends Thread {

 

    private PipedOutputStream out=new PipedOutputStream();

    public PipedOutputStream getOutputStream(){

        return out;

    }

 

    public void run(){

        String strInfo=new String("hello,receiver!");

       try {

           out.write(strInfo.getBytes());

           out.close();

       } catch (IOException e) {

           e.printStackTrace();

       }

    }

 

   

 

}

 

 

Receiver类:

import java.io.IOException;

import java.io.PipedInputStream;

 

 

public class Receiver extends Thread {

 

    private PipedInputStream in=new PipedInputStream();

    public PipedInputStream getInputStream(){

        return in;

    }

 

    public void run(){

      

      byte[] buf=new byte[1024];

      

       try {

           int len=in.read(buf);

           System.out.println("the following message comes from sender:/n"+

                  new String(buf,0,len));

 

           in.close();

       } catch (IOException e) {

           e.printStackTrace();

       }

    }

}

 

测试类:

import java.io.IOException;

import java.io.PipedInputStream;

import java.io.PipedOutputStream;

 

 

public class PipedStreamTest {

 

 

    public static void main(String[] args) throws IOException {

 

        Sender t1=new Sender();

        Receiver t2=new Receiver();

      

        PipedOutputStream out=t1.getOutputStream();

        PipedInputStream in=t2.getInputStream();

      

        in.connect(out);

      

        t1.start();

        t2.start();

    }

 

}

 

 

 

 

ByteArrayInputStream

ByteArrayOutputStream

字节数组的读写,支持虚拟文件和内存映像

例子:把输入流中的英文小写字符转换成大写,并输出

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

 

 

public class ByteArrayTest {

 

    public static void main(String[] args) {

 

      

        String tmp="sdfwerdfgfgeretcf";

      byte[] src=tmp.getBytes();

        ByteArrayInputStream in=new ByteArrayInputStream(src);

        ByteArrayOutputStream out= new ByteArrayOutputStream();

      

        transform(in,out);

       byte [] results=out.toByteArray();

        System.out.println(new String(results));

    }

 

    public static void transform(InputStream in,OutputStream out){

      

       int ch=0;

       try {

           while((ch=in.read())!=-1){

               int upperCh=Character.toUpperCase(ch);

               out.write(upperCh);

           }

       } catch (IOException e) {

           e.printStackTrace();

       }

    }

}

 

StringReader StringWriter对应字符串处理

重视IO程序代码的复用:

System.in 对应键盘输入,System..out 对应屏幕显示输出

InputStreamread()方法返回-1表示输入流的结束

windowsctrl+Z表示输入流的结束,Linuxctrl+D表示输入流的结束.

 

 

02-07-08-09-10

正如张孝祥老师所讲,字符编码:感觉有点晕,编码知识点还需要下点功夫继续学习一下

Unicode

UTF-8

UTF-16

 

字符编码的操作体验

例子1

public class CharCode {

 

    public static void main(String[] args) {

 

        String strChina="李德国";

        for(int i=0;i<strChina.length();i++){

           System.out.println(Integer.toHexString((int)strChina.charAt(i)));

       }

       byte [] buf=strChina.getBytes();

        for(int i=0;i<buf.length;i++){

           System.out.println(Integer.toHexString(buf[i]));

 

       }

        for(int i=0;i<buf.length;i++){

           System.out.write(buf[i]);

 

       }

        System.out.println();

    }

 

}

 

例子2

import java.io.IOException;

 

 

public class CharDecode {

 

    public static void main(String[] args) throws IOException {

 

        System.out.println("please enter a chinese string");

      byte[] buf=new byte[1024];

        String strInfo=null;

       int pos=0;

       int ch=0;

        while(true){

           ch=System.in.read();

           System.out.println(Integer.toHexString(ch));

           switch(ch){

           case '/r':

               break;

           case '/n':

               strInfo=new String(buf,0,pos);

               for(int i=0;i<strInfo.length();i++){

               System.out.println(Integer.toHexString((int)strInfo.charAt(i)));

 

               }

                 

               break;

               default:

                   buf[pos++]=(byte)ch;

           }

       }

    }

 

}

 

0
0
查看评论

学习笔记11—JAVA高级视频02_IO输入与输出

<br />file类:<br />      该类是io包中唯一代表磁盘文件本身信息的类,而不是文件中的内容。<br />      该类定义了一些与平台无关的方法来操作文...
  • m313856126
  • m313856126
  • 2011-02-25 02:12
  • 132

JAVA高级视频02_IO输入与输出 字符编码学习笔记

要想不出现乱码,用什么存就用什么码表打开!!
  • renfujiang
  • renfujiang
  • 2011-01-22 14:51
  • 351

JAVA高级视频02_IO输入与输出日记1(02-01到02—03)

2-01: File类 : 1、  File类是IO包中唯一代表磁盘文件本身信息的类,而不是文件中的内容。 2、  File类定义的操作文件的方法与平台无关,例如:创建、删除、重命名文件等。 3、  Java中的目录被作为一种特殊的文件使用,list方法...
  • lideguo1979
  • lideguo1979
  • 2011-06-16 15:58
  • 316

JAVA高级视频02_IO输入与输出日记2(02-04到05)

02-04 流是字节序列的抽象概念 文件是数据的静态存储形式,流是数据传输时的形态 流类:节点流类和过滤流类(处理流) InputStream:所有输入流的抽象类。方法 int read() int read(byte[] b) int available() int read(...
  • lideguo1979
  • lideguo1979
  • 2011-06-16 22:30
  • 286

JAVA高级视频02_IO输入与输出日记5(02-13到15)

02-13 ObjectOutputStream ObjectInputStream 用于从底层流中读取对象类型的数据和将对象类型的数据写入底层输出流,这连个类必须实现Serializable接口。对象中的transient(临时)和Static(全局)类型的变量不会被读取和写入。 例子:定...
  • lideguo1979
  • lideguo1979
  • 2011-06-18 15:31
  • 369

JAVA高级视频02_IO输入与输出日记4(02-11到12)

02-11 过滤流类: DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型 DataOutputStream:提供往各种输入流写入各种数据类型的方法,它并没有对应到任何具体的流设备,需要给他传递一个对应具体流设备的输出流对象,这...
  • lideguo1979
  • lideguo1979
  • 2011-06-17 23:17
  • 497

java高级视频_io输入与输出

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------ 概述: 一.   IO(Input Output)流 1.       &#...
  • jwd8713765
  • jwd8713765
  • 2015-06-20 20:23
  • 266

JAVA高级视频_IO输入与输出

---------------------- android培训、java培训、期待与您交流! ----------------------     JAVA高级视频_IO输入与输出     流一般分为输入流(Input Stream)和输出流(Outp...
  • ghzhangfoxmail
  • ghzhangfoxmail
  • 2012-12-10 23:36
  • 325

Java(9-1)输入与输出(二)

上节我们关注了 文本形式的读入和写出的操作(UTF-8编码)。 这回,我们要看看在Java中如何对文件以 010101 二进制的形式 来进行读写 。Part 1.1 DataInput 和 DataOutput接口的介绍DataOutput接口中定义了用二进制格式读取,数组、字符、boolean值和...
  • qq_36120793
  • qq_36120793
  • 2017-12-18 00:58
  • 37

第三周C#技术支持训练(二)自定义一个整数,输出该数分别于1-10相乘的结果

实验简述: 2.        自定义一个整数,输出该数分别于1-10相乘的结果。(使用\t控制输出格式) 源代码: using System; using System.Collections.Generic; usi...
  • lihongxuanli
  • lihongxuanli
  • 2012-09-17 17:21
  • 1449
    个人资料
    • 访问:252047次
    • 积分:3939
    • 等级:
    • 排名:第9506名
    • 原创:78篇
    • 转载:106篇
    • 译文:5篇
    • 评论:131条
    文章分类
    最新评论