当前位置:首页 > 操作系统 > MacOs

IO包中的其他类 打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组

class PrintStreamDemo_15 { public static void main(String[] args) throws IOException { BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); PrintWriter out = new PrintWriter(new FileWriter("a.txt"),true); //自动刷新 String line = null; while((line=bufr.readLine())!=null) { if("over".equals(line)) break; out.println(line.toUpperCase()); //out.flush(); } out.close(); bufr.close(); } } PrintStreamDemo_15

删除一个带内容的目录。

/*
删除一个带内容的目录。
删除原理:
在window中,删除目录从里面往外删除的。

既然是从里往外删除,就需要用到递归。
*/

IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> RemoveDir_9 {

    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args) {
        
        File dir </span>= <span style="color: #0000ff;">new</span> File("aa"<span style="color: #000000;">);
        removeDir(dir);
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> removeDir(File dir)
    {
        File[] files </span>=<span style="color: #000000;"> dir.listFiles();
        </span><span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> x=0;x<files.length;x++<span style="color: #000000;">)
        {
            </span><span style="color: #0000ff;">if</span>(!files[x].isHidden()&&<span style="color: #000000;">files[x].isDirectory())
            {
                removeDir(files[x]);
            }
            </span><span style="color: #0000ff;">else</span><span style="color: #000000;">
                System.out.println(files[x].toString()</span>+":"+<span style="color: #000000;">files[x].delete());
        }
        System.out.println(dir</span>+":dir:"+<span style="color: #000000;">dir.delete());
    }

}</span>
RemoveDir_9

 

二、序列流

序列流(合并流)SequenceInputStream

IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> SequenceInputStream_16 {

    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {

        Vector</span><FileInputStream> v = <span style="color: #0000ff;">new</span> Vector<FileInputStream><span style="color: #000000;">();
        
        v.add(</span><span style="color: #0000ff;">new</span> FileInputStream("1.txt"<span style="color: #000000;">));
        v.add(</span><span style="color: #0000ff;">new</span> FileInputStream("2.txt"<span style="color: #000000;">));
        v.add(</span><span style="color: #0000ff;">new</span> FileInputStream("3.txt"<span style="color: #000000;">));
        
        Enumeration</span><FileInputStream> en =<span style="color: #000000;"> v.elements();
        SequenceInputStream sis </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SequenceInputStream(en);
        
        FileOutputStream fos </span>= <span style="color: #0000ff;">new</span> FileOutputStream("4.txt"<span style="color: #000000;">);
        
        </span><span style="color: #0000ff;">byte</span>[] buf = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">byte</span>[1024<span style="color: #000000;">];
        </span><span style="color: #0000ff;">int</span> len = 0<span style="color: #000000;">;
        </span><span style="color: #0000ff;">while</span>((len=sis.read(buf))!=-1<span style="color: #000000;">)
        {
            fos.write(buf,</span>0<span style="color: #000000;">,len);
        }
        fos.close();
        sis.close();

    }

}</span>
SequenceInputStream_16

 

三、操作对象

切割、合并文件

IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> SpiieFile_17 {
    
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
    {
        </span><span style="color: #008000;">//</span><span style="color: #008000;">spliFile();</span>
<span style="color: #000000;">        merge();
    }
    </span><span style="color: #008000;">//</span><span style="color: #008000;">合并</span>
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> merge() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
    {
        ArrayList</span><FileInputStream> al = <span style="color: #0000ff;">new</span> ArrayList<FileInputStream><span style="color: #000000;">();
        </span><span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> x=1;x<=5;x++<span style="color: #000000;">)
        {
            al.add(</span><span style="color: #0000ff;">new</span> FileInputStream("F:eclipseWorkspaceBixiangdongsplitfile"+x+".part"<span style="color: #000000;">));
        }
        </span><span style="color: #0000ff;">final</span> Iterator<FileInputStream> it =<span style="color: #000000;"> al.iterator();
        Enumeration</span><FileInputStream> en = <span style="color: #0000ff;">new</span> Enumeration<FileInputStream><span style="color: #000000;">()
        {
            </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">boolean</span><span style="color: #000000;"> hasMoreElements()
            {
                </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> it.hasNext();
            }
            </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> FileInputStream nextElement()
            {
                </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> it.next();
            }
        };
        SequenceInputStream sis </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SequenceInputStream(en);
        
            FileOutputStream fos </span>= <span style="color: #0000ff;">new</span> FileOutputStream("F:eclipseWorkspaceBixiangdongsplitfile.bmp"<span style="color: #000000;">);
            </span><span style="color: #0000ff;">byte</span>[] buf = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">byte</span>[1024<span style="color: #000000;">];
            </span><span style="color: #0000ff;">int</span> len = 0<span style="color: #000000;">;
            </span><span style="color: #0000ff;">while</span>((len=sis.read(buf))!=-1<span style="color: #000000;">)
            {
                fos.write(buf,</span>0<span style="color: #000000;">,len);
            }
            fos.close();
            sis.close();
    }
    </span><span style="color: #008000;">//</span><span style="color: #008000;">切割文件</span>
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> spliFile() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
    {
        FileInputStream fis </span>= <span style="color: #0000ff;">new</span> FileInputStream("1.tmp"<span style="color: #000000;">);
        FileOutputStream fos </span>= <span style="color: #0000ff;">null</span><span style="color: #000000;">;
        </span><span style="color: #0000ff;">byte</span>[] buf = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">byte</span>[1024*40<span style="color: #000000;">];
        </span><span style="color: #0000ff;">int</span> len = 0<span style="color: #000000;">;
        </span><span style="color: #0000ff;">int</span> count = 1<span style="color: #000000;">;
        </span><span style="color: #0000ff;">while</span>((len=fis.read(buf))!=-1<span style="color: #000000;">)
        {
            fos </span>= <span style="color: #0000ff;">new</span> FileOutputStream("F:eclipseWorkspaceBixiangdongsplitfile"+(count++)+".part"<span style="color: #000000;">);
            fos.write(buf,</span>0<span style="color: #000000;">,len);
            fos.close();
        }
        fis.close();
            
    }
}</span>
SpiieFile_17 IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> ObjectStreamDemo {

    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException, ClassNotFoundException {
        
        </span><span style="color: #008000;">//</span><span style="color: #008000;">writeObj();</span>
<span style="color: #000000;">        readObj();

    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> readObj() <span style="color: #0000ff;">throws</span><span style="color: #000000;">  IOException, ClassNotFoundException
    {
        ObjectInputStream ois </span>= <span style="color: #0000ff;">new</span> ObjectInputStream(<span style="color: #0000ff;">new</span> FileInputStream("person.object"<span style="color: #000000;">));
        Person p </span>=<span style="color: #000000;"> (Person)ois.readObject();
        System.out.println(p);
        ois.close();
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> writeObj() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
    {
        ObjectOutputStream oos </span>= 
                <span style="color: #0000ff;">new</span> ObjectOutputStream(<span style="color: #0000ff;">new</span> FileOutputStream("person.object"<span style="color: #000000;">));
        oos.writeObject(</span><span style="color: #0000ff;">new</span> Person("lisi0",399,"kr"));<span style="color: #008000;">//</span><span style="color: #008000;">对象存在硬盘文件</span>
<span style="color: #000000;">        oos.close();
        
    }

}
</span><span style="color: #0000ff;">class</span> Person <span style="color: #0000ff;">implements</span><span style="color: #000000;"> Serializable
{
    </span><span style="color: #008000;">//</span><span style="color: #008000;">自定义固定UID,类变换依然可以从文件中读取对象,为序列化方便</span>
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">final</span> <span style="color: #0000ff;">long</span> serialVersionUID = 42L<span style="color: #000000;">;
    </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> String name;
    </span><span style="color: #0000ff;">transient</span> <span style="color: #0000ff;">int</span> age;    <span style="color: #008000;">//</span><span style="color: #008000;">加关键字修饰,非静态成员也不能被序列化</span>
    <span style="color: #0000ff;">static</span> String country = "cn";   <span style="color: #008000;">//</span><span style="color: #008000;">静态不能被序列化,静态在方法区,序列化只能序列化堆里的</span>
    Person(String name,<span style="color: #0000ff;">int</span><span style="color: #000000;"> age,String country)
    {
        </span><span style="color: #0000ff;">this</span>.name =<span style="color: #000000;"> name;
        </span><span style="color: #0000ff;">this</span>.age =<span style="color: #000000;"> age;
        </span><span style="color: #0000ff;">this</span>.country =<span style="color: #000000;"> country;
    }
    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> String toString()
    {
        </span><span style="color: #0000ff;">return</span> name+":"+age+":"+<span style="color: #000000;">country;
    }
}</span>
ObjectStreamDemo

 

四、管道流

PipedInputStream   PipedOutputStream

IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片
<span style="color: #0000ff;">class</span> Read <span style="color: #0000ff;">implements</span><span style="color: #000000;"> Runnable
{
    </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> PipedInputStream in;
    Read(PipedInputStream in)
    {
        </span><span style="color: #0000ff;">this</span>.in =<span style="color: #000000;"> in;
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> run()
    {
        </span><span style="color: #0000ff;">try</span><span style="color: #000000;">
        {
            </span><span style="color: #0000ff;">byte</span>[] buf = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">byte</span>[1024<span style="color: #000000;">];
            System.out.println(</span>"读取前。。没有数据阻塞"<span style="color: #000000;">);
            </span><span style="color: #0000ff;">int</span> len =<span style="color: #000000;"> in.read(buf);
            System.out.println(</span>"读到。。阻塞结束"<span style="color: #000000;">);
            String s </span>= <span style="color: #0000ff;">new</span> String(buf,0<span style="color: #000000;">,len);
            System.out.println(s);
            in.close();
        }
        </span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(Exception e)
        {
            </span><span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> RuntimeException("管道读取流失败"<span style="color: #000000;">);
        }
    }
}
</span><span style="color: #0000ff;">class</span> Write <span style="color: #0000ff;">implements</span><span style="color: #000000;"> Runnable
{
    </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> PipedOutputStream out;
    Write(PipedOutputStream out)
    {
        </span><span style="color: #0000ff;">this</span>.out =<span style="color: #000000;"> out;
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> run()
    {
        </span><span style="color: #0000ff;">try</span><span style="color: #000000;">
        {
            System.out.println(</span>"开始写入数据,等待6s后。"<span style="color: #000000;">);
            Thread.sleep(</span>6000<span style="color: #000000;">);
            out.write(</span>"piped lai le "<span style="color: #000000;">.getBytes());
            out.close();
        }
        </span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(Exception e)
        {
            </span><span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> RuntimeException("管道输出流失败"<span style="color: #000000;">);
        }
    }
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> PipedStreamDemo_2 {

    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {
        
        PipedInputStream in </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> PipedInputStream();
        PipedOutputStream out </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> PipedOutputStream();
        in.connect(out);
        Read r </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> Read(in);
        Write w </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> Write(out);
        </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Thread(r).start();
        </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Thread(w).start();
        

    }

}</span>
PipedStreamDemo_2

 

五、RandomAccessFile

/*
RandomAccessFile

该类不是算是IO体系中子类。
而是直接继承自Object.

但是它是IO包中成员,因为它具备读和写功能。
内部封装一个数组,而且通过指针对数组的元素进行操作。
可以通过getFilePionter获取指针位置。
同时可以通过seek改变指针的位置。

起始完成读写的原理就是内部封装了字节输入流和输出流。

通过构造函数可以看出,该类只能操作文件。
而且操作文件还有模式。只读rw等。

如果模式为只读r,不会创建文件,会去读取一个已存在文件,如果该文件不存在,则会出现异常,
如果模式为rw,如果文件不存在,会自动创建,如果存在则不会覆盖。

用处:实现数据的分段写入。(如多线程下载)
*/

IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> RandomAccessFileDemo_3 {

    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {
        
        writeFile();
        ReadFile();
        </span><span style="color: #008000;">//</span><span style="color: #008000;">writeFile_2();</span>
<span style="color: #000000;">    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> ReadFile() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
    {
        RandomAccessFile raf </span>= <span style="color: #0000ff;">new</span> RandomAccessFile("ran.txt","r"<span style="color: #000000;">);
        
        </span><span style="color: #008000;">//</span><span style="color: #008000;">调整对象中的指针。
        </span><span style="color: #008000;">//</span><span style="color: #008000;">raf.seek(8);
        </span><span style="color: #008000;">//</span><span style="color: #008000;">跳过指定的字节数</span>
        raf.skipBytes(10<span style="color: #000000;">);
        </span><span style="color: #0000ff;">byte</span>[] buf = <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">byte</span>[4<span style="color: #000000;">];
        raf.read(buf);
        String name </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> String(buf);
        </span><span style="color: #0000ff;">int</span> age =<span style="color: #000000;"> raf.readInt();
        System.out.println(</span>"name="+<span style="color: #000000;">name);
        System.out.println(</span>"age="+<span style="color: #000000;">age);
        raf.close();
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> writeFile_2() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
    {
        RandomAccessFile raf </span>= <span style="color: #0000ff;">new</span> RandomAccessFile("ran.txt","rw"<span style="color: #000000;">);
        raf.seek(</span>8*0<span style="color: #000000;">);
        raf.write(</span>"周七"<span style="color: #000000;">.getBytes());
        raf.writeInt(</span>103<span style="color: #000000;">);
        
        raf.close();
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> writeFile() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
    {
        RandomAccessFile raf </span>= <span style="color: #0000ff;">new</span> RandomAccessFile("ran.txt","rw"<span style="color: #000000;">);
        raf.write(</span>"李四"<span style="color: #000000;">.getBytes());
        raf.writeInt(</span>97<span style="color: #000000;">);
        raf.write(</span>"王五"<span style="color: #000000;">.getBytes());
        raf.writeInt(</span>99<span style="color: #000000;">);
        raf.close();
    }

}</span>
RandomAccessFileDemo_3

 

六、操作基本数据类型

/*
DataInputStream 和DataOutputStream
可以用于操作基本数据类型的数据的流对象。
*/

IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> DateIOStreamDemo_4 {

    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> main(String[] args) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException {
        
        </span><span style="color: #008000;">//</span><span style="color: #008000;">writeData();
        </span><span style="color: #008000;">//</span><span style="color: #008000;">readData();
        </span><span style="color: #008000;">//</span><span style="color: #008000;">writeUTFDemo();
        
</span><span style="color: #008000;">//</span><span style="color: #008000;">        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("gbk.txt"),"gbk");
</span><span style="color: #008000;">//</span><span style="color: #008000;">        osw.write("您好");
</span><span style="color: #008000;">//</span><span style="color: #008000;">        osw.close();</span>
<span style="color: #000000;">        readUTFDemo();
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> readUTFDemo() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
    {
        DataInputStream dis </span>= <span style="color: #0000ff;">new</span> DataInputStream(<span style="color: #0000ff;">new</span> FileInputStream("utfdata.txt"<span style="color: #000000;">));
        String s </span>=<span style="color: #000000;"> dis.readUTF();
        System.out.println(s);
        dis.close();
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> writeUTFDemo() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
    {
        </span><span style="color: #008000;">//</span><span style="color: #008000;">修改版,只能用对应的才能读出来</span>
        DataOutputStream dos = <span style="color: #0000ff;">new</span> DataOutputStream(<span style="color: #0000ff;">new</span> FileOutputStream("utfdata.txt"<span style="color: #000000;">));
        
        dos.writeUTF(</span>"您好"<span style="color: #000000;">);
        dos.close();
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> readData() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
    {
        DataInputStream dis </span>= <span style="color: #0000ff;">new</span> DataInputStream(<span style="color: #0000ff;">new</span> FileInputStream("data.txt"<span style="color: #000000;">));
        </span><span style="color: #008000;">//</span><span style="color: #008000;">顺序要正确</span>
        <span style="color: #0000ff;">int</span> num =<span style="color: #000000;"> dis.readInt();
        </span><span style="color: #0000ff;">boolean</span> b =<span style="color: #000000;"> dis.readBoolean();
        </span><span style="color: #0000ff;">double</span> d =<span style="color: #000000;"> dis.readDouble();
        System.out.println(</span>"num="+<span style="color: #000000;">num);
        System.out.println(</span>"b="+<span style="color: #000000;">b);
        System.out.println(</span>"d="+<span style="color: #000000;">d);
        dis.close();
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> writeData() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> IOException
    {
        DataOutputStream dos </span>= <span style="color: #0000ff;">new</span> DataOutputStream(<span style="color: #0000ff;">new</span> FileOutputStream("data.txt"<span style="color: #000000;">));
        
        dos.writeInt(</span>234);<span style="color: #008000;">//</span><span style="color: #008000;">4个字节</span>
        dos.writeBoolean(<span style="color: #0000ff;">true</span>);<span style="color: #008000;">//</span><span style="color: #008000;">一个字节</span>
        dos.writeDouble(9887.543);<span style="color: #008000;">//</span><span style="color: #008000;">8个字节</span>
<span style="color: #000000;">        dos.close();
    }

}</span>
DateIOStreamDemo_4

 

七、操作字节数组

/*
用于操作字节数据的流对象。

ByteArrayInputStream:在构造的时候,需要接受数据源,而且数据源是一个字节数组。

ByteArrayOutputStream:在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组,
这就是数据目的地。

因为这两个流对象都操作的数组,并没有使用系统资源。
所以,不用进行close关闭。

在流操作规律讲解时,
源设备:
键盘 System.in, 硬盘 FileStream,内存ArrayStream.
目的设备:
控制台 System.out,硬盘FileStream,内存ArrayStream.

用流的读写思想来操作数组。
*/

IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片IO包中的其他类      打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组 - 文章图片
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> ByteArreayIOStream_5 {

    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args) {
        
        </span><span style="color: #008000;">//</span><span style="color: #008000;">数据源</span>
        ByteArrayInputStream bis = <span style="color: #0000ff;">new</span> ByteArrayInputStream("ABCDEFD"<span style="color: #000000;">.getBytes());
        </span><span style="color: #008000;">//</span><span style="color: #008000;">数据目的</span>
        ByteArrayOutputStream bos = <span style="color: #0000ff;">new</span><span style="color: #000000;"> ByteArrayOutputStream();
        
        </span><span style="color: #008000;">//</span><span style="color: #008000;">源:硬盘    目的:内存</span>
        
        
        <span style="color: #0000ff;">int</span> by = 0<span style="color: #000000;">;
        </span><span style="color: #0000ff;">while</span>((by=bis.read())!=-1<span style="color: #000000;">)
        {
            bos.write(by);
        }
        System.out.println(bos.size());
        System.out.println(bos.toString());
        
        </span><span style="color: #008000;">//</span><span style="color: #008000;">用流的思想操作数组
        </span><span style="color: #008000;">//</span><span style="color: #008000;">提供代码复用性,
        
        </span><span style="color: #008000;">//</span><span style="color: #008000;">bos.writeTo(new FileOutputStream("a,txt"));</span>
<span style="color: #000000;">    }

}</span>
ByteArreayIOStream_5

 

IO包中的其他类 打印流,序列流,操作对象,管道流,RandomAccessFile,操作基本数据类型,操作字节数组

标签:

本文系统来源:http://www.cnblogs.com/cailingsunny/p/4698836.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐