输出流(写入数据)

a. 字节输出流

OutputStram

输出流的父类

FileOutputStream:  继承OutputStream

方法:

OutputStream os=new FileOutputStream("dos.txt");
os.write("asdf".getBytes());
os.close();

b. 字符输出流

Writer

abstract class Writer implements Appendable, Closeable, Flushable

应使用它们的子类来创建实体对象

子类:

  FileWrite----继承---->OutputStreamWrite
     FileWriter fd=new FileWriter("dos.txt");       

fd.write("FileWriter");
fd.close();

c. 缓冲区输出流

BufferedWriter  --继承--> Writer

Writer w=new FileWriter("dos.txt");
BufferedWriter bw1=new BufferedWriter(w);
bw1.write("BufferedWriter");
bw1.close();

BufferedOutputStream   继承FilterOutputStream

OutputStream ops=new FileOutputStream("dos.txt");
BufferedOutputStream bw=new BufferedOutputStream(ops);
bw.write("BufferedOutputStream".getBytes());
bw.close();

d.内存输出流(特殊流)   需要先写再读

ByteArrayOUtputStream

ByteArrayOutputStream baos = new ByteArrayOutputStream();

// 写数据
for (int x = 0; x < 10; x++) {
baos.write(("hello" + x).getBytes());
}

ByteArrayInputStream bais=new ByteArrayInputStream(baos.toByteArray());

int s=0;

while((s=bais.read())!=-1)
{
System.out.print((char)s);
}

CharArrayStream

CharArrayWriter baos = new CharArrayWriter();
String str="asdfgasgretfgertgergasdrg";
// 写数据
for (int x = 0; x < 2; x++) 
{
baos.write(str.toCharArray());
}

CharArrayReader bais=new CharArrayReader(baos.toCharArray());

int s=0;
while((s=bais.read())!=-1)
{
System.out.print((char)s);
}

StringReader

StringWriter baos = new StringWriter();
String str="asdfgasgretfgertgergasdrg";
// 写数据
for (int x = 0; x < 2; x++) 
{
baos.write(str);
}
StringReader bais=new StringReader(baos.toString());
int s=0;
while((s=bais.read())!=-1)
{
System.out.print((char)s);
}

e. 数据输出流

DataOutputStream

// 创建数据输出流对象
DataOutputStream dos = new DataOutputStream(new FileOutputStream(
"dos.txt"));

// 写数据了
dos.writeByte(10);
dos.writeShort(100);
dos.writeInt(1000);
dos.writeLong(10000);
dos.writeFloat(12.34F);
dos.writeDouble(12.56);
dos.writeChar('a');
dos.writeBoolean(true);

// 释放资源
dos.close();

f.转换输出流(字符转字节流)

OutputStreamReader 

OutputStream ops=new FileOutputStream("dos.txt");
OutputStreamWriter osw=new OutputStreamWriter(ops);
osw.write("123");
osw.close();

g. 打印输出流(只能写不能读)              

(1)字节打印流,字符打印流
(2)特点:
A:只操作目的地,不操作数据源
B:可以操作任意类型的数据
C:如果启用了自动刷新,在调用println()方法的时候,能够换行并刷新
D:可以直接操作文件
问题:哪些流可以直接操作文件呢?
看API,如果其构造方法能够同时接收File和String类型的参数,一般都是可以直接操作文件的
(3)复制文本文件
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
PrintWriter pw = new PrintWriter(new FileWriter("b.txt"),true);

String line = null;
while((line=br.readLine())!=null) {
pw.println(line);
}

pw.close();
br.close();

I/O 流---输出流的更多相关文章

  1. java_IO流(输出流)

    ** * io流: * 输入流:硬盘输入到内存 字节/字符输入流 * 输出流:内存输出到硬盘 字节/字符输入流 * 字节流:一切数据都是字节存储(二进制) * 字节输出流(OutputStream): ...

  2. 黑马程序员_Java基础:IO流总结

    ------- android培训.java培训.期待与您交流! ---------- IO流在是java中非常重要,也是应用非常频繁的一种技术.初学者要是能把IO技术的学透,java基础也就能更加牢 ...

  3. Java IO7:管道流、对象流

    前言 前面的文章主要讲了文件字符输入流FileWriter.文件字符输出流FileReader.文件字节输出流FileOutputStream.文件字节输入流FileInputStream,这些都是常 ...

  4. Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  5. Java IO5:管道流、对象流

    前言 前面的文章主要讲了文件字符输入流FileWriter.文件字符输出流FileReader.文件字节输出流FileOutputStream.文件字节输入流FileInputStream,这些都是常 ...

  6. 初识Java-IO流

    1.定义: 流是一种抽象概念,它代表了数据的无结构化传递.数据流(Stream)是指数据通信的通道. 2.流的分类: 1)按流向分 输入流:从数据源到程序中的流 输出流:从程序到数据源的流 2)按数据 ...

  7. Java中IO流的总结

    有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...

  8. Java基础---Java---IO流-----对象的序列化、管道流、RandomAccessFile、数据类型的流对象DataStream、ByteArrayStream

    ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化. ObjectOutputStream 和 ObjectInputStream ...

  9. java IO流(一)

    一.IO流概述 1 什么是IO流 (流就是通道对象) IO - Input(输入) Output(输出) 在Java的IO中,流是一个很形象的概念,就像水流一样. 当程序需要读取数据的时候,就会开启一 ...

随机推荐

  1. [设计模式]<<设计模式之禅>>关于接口隔离原则

    在讲接口隔离原则之前,先明确一下我们的主角——接口.接口分为两种: ● 实例接口(Object Interface),在Java中声明一个类,然后用new关键字产生一个实例,它是对一个类型的事物的描述 ...

  2. nodejs3-事件zepto.js事件

    Event代表事件名,listener代表事件处理函数,括号内的参数代表可选参数: addListener(event,listener):对指定事件绑定事件处理函数 on(同上):addListen ...

  3. ActiveMQ(5.10.0) - Message Redelivery and DLQ Handling

    When messages expire on the ActiveMQ broker (they exceed their time-to-live, if set) or can’t be red ...

  4. winform无边框拖动

    [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("use ...

  5. HDOJ2028Lowest Common Multiple Plus

    Lowest Common Multiple Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  6. Arnold+Shave 渲染毛发

    Arnold是一款基于真实物理光照算法和光线追踪算法的照片级渲染器,参与过多部好莱坞大片的制作,公司官网是:www.solidangle.com,官网上有很多效果图: 这里自己用一个球体测试了一下效果 ...

  7. NSArray的Category

    NSArray的Category 前言 项目中自己通过各种渠道及结合项目的经验整理了一套自己的工具包,里面有各种Category,及封装的方法,方便项目使用,今天先分享一下NSarray的Catego ...

  8. abstract

    /// <summary> /// 抽象类不能被直接实例化 /// is a /// </summary> public abstract class BasePhone { ...

  9. 设置TextView文字居中

    有2种方法可以设置TextView文字居中: 一:在xml文件设置:android:gravity="center" 二:在程序中设置:m_TxtTitle.setGravity( ...

  10. 一次完整的http请求所需要完成的步骤

    出处:简明现代魔法  http://www.nowamagic.net/librarys/veda/detail/1339 HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器 ...