黑马程序员_IO流
——- android培训、java培训、期待与您交流! ———
输入流和输出流相对于内存设备而言.
- 将外设中的数据读取到内存中:输入
- 将内存的数写入到外设中:输出。
字符流的由来:
其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表。获取对应的文字。再对这个文字进行操作。简单说:字节流+编码表
字节流的两个顶层父类: 1,InputStream 2,OutputStream
字符流的两个顶层父类: 1,Reader 2,Writer
- 将一个字符串存储到一个文本文件中
import java.io.FileWriter;
import java.io.IOException;
//需求:将一些文字存储到硬盘一个文件中。
public class FileWriterDemo {
//获取当前系统行与行之间的分隔符
private static final String LINE_SEPARATOR = System.getProperty("line.separator");
public static void main(String[] args) throws IOException
{
//创建一个可以往文件中写入字符数据的字符输出流对象。如果文件不存在,则会自动创建。如果文件存在,则会被覆盖。
//构造函数中加入true,可以实现对文件进行续写!
FileWriter fw = new FileWriter("demo.txt",true);
//调用Writer对象中的write(string)方法,写入数据。
fw.write("abcde"+LINE_SEPARATOR+"asdf");
fw.flush(); //保存文件
//关闭流,关闭资源。
fw.close();
}
}
- 读取一个文本文件。将读取到的字符打印到控制台.
public class FileReaderDemo2
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("F:\\1.txt");
//使用read(char[])读取文本文件数据。先创建字符数组。
char[] buf = new char[1024];
int len = 0;
while((len=fr.read(buf))!=-1)
{
System.out.println(new String(buf,0,len));
}
int num = fr.read(buf);//将读取到的字符存储到数组中。
System.out.println(num+":"+new String(buf,0,num));
}
}