IO流--字符流写数据

IO流是用来处理设备之间的数据传输的,诸如:文件的复制,上传下载文件

Java中的流可以从不同的角度进行分类:

- 按照流的方向不同:分为输入流和输出流。

- 按照处理数据单位的不同:分为字节流和字符流。

- 按照功能不同:分为节点流和处理流

要区分字符流和字节流,我们可以从类名来区分

类名中包含Reader:字符流  输入流

类名中包含Writer:字符流  输出流

类名中包含Input:字节流  输入流

类名中包含Output:字节流  输出流

包含Stream:字节流

今天着重来看下字符流.

Write顾名思义就是写的意思,FileWriter(String fileName) 指的是传递一个文件的名称

成员方法:

void write(String str) 往文件中写入一个字符串

void flush() 刷新该流的缓冲,把内存缓冲区中的数据刷新到新的文件中去

void close() 关闭此流,但是要先刷新它

输出流写数据的一般步骤(也是最基本的步骤)

1.创建输出流对象

2.调用输出流对象写数据的方法

3.刷新缓存,写入文件

4.释放资源.

举例:

import java.io.FileWriter;
import java.io.IOException;
public class DemoFileWriter {
public static void main(String[] args) throws IOException {
//1.创建输出流对象,导包和抛出异常(此次为演示,不解决异常)
FileWriter fw = new FileWriter("a.txt");
/**
* 创建输出流对象做了如下几件事情
* A.调用系统资源创建了一个文件a.txt
* B.创建了输出流对象
* C.把输出流对象指向文件
*/
//2.调用输出流对象写数据的方法write()  写一个字符串
fw.write("IO流大法好");
/*
* 3.此时数据是写在了缓存中,所以需要做接下来的第三步,刷新缓存.
*/
fw.flush();
//4.通知系统释放资源,释放之后再调用writer() 就没有作用了
fw.close();
}
}

这里需要区分关闭close()和刷新flush()方法的区别.

1.flush(); 刷新缓冲区,刷新后流对象还可以继续用

2.close(); 释放资源,在释放前会强制刷新缓冲区.释放后流对象就不能再使用了.

FileWriter写数据的5个方法:

1.写一个字符串数据   void write(String str);

2.写一个字符串中的一部分数据,index开始索引,len表示写几个 ,void write(String str, int len);

3.写一个字符数据, void write(int ch)  这里之所以用int,是因为char类型的数据也对应着int数值.比如

‘a‘  97

4.写一个字符数组的数据 void write(char[] chs);

5.写一个字符数组的一部分数据,index:开始索引,len写几个 void write(char[] chs,int index,int len);

举个栗子:

import java.io.FileWriter;
import java.io.IOException;
public class DemoFileWriter {
public static void main(String[] args) throws IOException {
//1.创建输出流对象,导包和抛出异常(此次为演示,不解决异常)
FileWriter fw = new FileWriter("a.txt");
// 写入一个字符串数据 void write(String str);
fw.write("abcde");
//写一个字符串中的一部分数据
fw.write("abcde",1,3);
//写一个字符数组数据
char[] chs = {‘a‘,‘b‘,‘c‘,‘d‘};
fw.write(chs);
//写完数据不要忘记刷新和关闭,要不然文件里会没有数据
fw.flush();
fw.close();
}
}

如果需要在文件中添加换行怎么办呢?

Windows中的换行: \r\n

linux 中 的换行 \n

这就是关于IO流写数据的内容,下次分享字符流读数据的内容.

时间: 2024-10-24 02:39:22

IO流--字符流写数据的相关文章

java021.io流 字符流

注意:字节流可以操作任意数据,但是字符流只能操作纯文本文件,一般用于文本文件的只读或只写! 字符流是什么 * 字符流是可以直接读写字符的IO流 * 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出. FileReader类的read()方法可以按照字符大小读取FileWriter类的write()方法可以自动把字符转为字节写出 字符流用处和特点:* 字符流也可以拷贝文本文件, 但不推荐使用. 因为读取时会把字节转为字符, 写出时还要把字符转回字

黑马程序员——java基础---IO(input output)流字符流

黑马程序员——java基础---IO(input output)流字符流 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- io(input output)流特点: 1,io流用来处理数据之间的传输 2,java对数据的操作是通过流的方式: 3,java用于操作流的对象都在io包中: 4,流按操作数据分为两种:字节流和字符流: 5,流按流向分为:输入流和输出流. 注意:流只能操作数据,而不能操作文件. 3.IO流的常用基类: 1)字节流的抽象

JAVA之IO技术-字符流对象Writer的子类对象FileWriter的使用

  package ioTest.io1; import java.io.File; import java.io.FileWriter; /* * IO技术,按照操作数据的方式分类如下: * 字节流和字符流 * 字节流的两个基类: * InputStream,OutputStream * 字节流的两个基类: * Reader,Writer * 思考一个问题:为什么有了字节流还要出现字符流? * * 先学习字符流的特点. * * 既然IO是操作数据的,那么数据最常见的体现形式 文件 * 需求:

文本数据IO操作--字符流

一.Reader和Writer 1. 字符流原理 Reader是所有字符输入流的父类而Writer是所有字符输出流的父类.字符流是以字符(char)为单位读写数据的.一次处理一个unicode.字符流都是高级流,其底层都是依靠字节流进行读写数据的,所以底层仍然是基于字节读写数据的.2. 常用方法 Reader的常用方法:int read()读取一个字符,返回的int”值低16”位有效. 其实返回的是char 若返回的是-1 则读取到末尾 int read(char[] chs)从该流中读取一个字

Java学习笔记之 IO包 字符流

字符流:Writer/Reader(字符流) 通过子类FileWriter和FileReader实现父类实例化 package iotest; import java.io.File; import java.io.Writer; import java.io.Reader; import java.io.FileWriter; import java.io.FileReader; public class OutputStreamDemo2 { public static void main(

Java IO流-字符流

2017-11-05 18:34:39 Java中的IO流按数据类型分类分为两种,一是字节流,二是字符流.字符流的出现是为了简化文本数据的读入和写出操作. 如果操作的文件是文本文件,那么使用字符流会大大简化操作,但是如果什么都不知道,就用字节流. 字符流 由于字节流中读取中文不是很方便,所以Java中提供了转换流,所以 字符流 = 字节流 + 编码表(By the way,'a'=97,'A'=65,'0'=48). 字符流也有两个抽象基类:Writer Reader * OutputStrea

IO流--字符流缓冲技术

缓冲技术是为了提高数据的读写效率而提出的. (1)字符流的缓冲读 在字符流的缓冲技术中提供了一个newLine()方法,这个方法是跨平台的 在读数据的时候采用读完直接刷新的方式可以保证断电后数据不会丢失 package com.songyan.bufferedwriter; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class Demo1 { publi

黑马程序员——java基础IO流——字符流缓冲区和字节流

字符流的缓冲区 l  缓冲区的出现提高了对数据的读写效率. l  对应类 ?    BufferedWriter ?    BufferedReader l  缓冲区要结合流才可以使用. l  在流的基础上对流的功能进行了增强. 1, BufferedWriter 每次可以写入一行,缓冲区的出现是为了提高流的操作效率而出现的.所以在创建缓冲区之前,必须要先有流对象.该缓冲区中提供了一个跨平台的换行符,newLine(); /* 缓冲区的出现是为了提高流的操作效率而出现的. 所以在创建缓冲区之前,

[学习笔记]Java IO之字符流

概述 字符流是专门用于处理文本文件的流,其中包括了文本编码相关转换工作. 字符流只可以处理文本字符数据. 每个字符流都包括一种编码方式,可以使用系统默认,也可以自行设定. 编码 1. 编码表 生活中语言文字和计算机中对应的数据表 2. 常见编码表 ASCII:包括字母和常见符号,1字节编码,首位为0. ISO8859-1:包括拉丁字母,1字节编码,首位为1. GB2312:简体中文码表,包括6~7千汉子及符号,2字节编码,2个字节首位均为1. GBK:中文码表,包括GB2312全部编码,约2万个