📅  最后修改于: 2020-03-24 11:14:45             🧑  作者: Mango
I / O流
流是一种顺序访问文件的方法。I/O流是表示不同类型的源(例如磁盘文件)的输入源或输出目标。java.io包提供了允许您在Unicode字符流和非Unicode文本的字节流之间进行转换的类。
流 :数据序列。
输入流:从源读取数据。
输出流:将数据写入目标。
角色流
在Java中,字符是使用Unicode约定存储的。字符流自动允许我们逐字符读取/写入数据。例如,FileReader和FileWriter是用于从源读取和写入目标的字符流。
// Java使用FileReader,读取人类可读的文件格式
import java.io.*; // 获取 FileReader, FileWriter, IOException
public class GfG
{
public static void main(String[] args) throws IOException
{
FileReader sourceStream = null;
try
{
sourceStream = new FileReader("test.txt");
// 读取文件,然后逐个字符,写入内容
int temp;
while ((temp = sourceStream.read()) != -1)
System.out.println((char)temp);
}
finally
{
// 关闭流
if (sourceStream != null)
sourceStream.close();
}
}
}
输出:
Shows contents of file test.txt
字节流
字节流逐字节(8位)处理数据。例如,FileInputStream用于读取源,FileOutputStream用于写入目标。
// Java展示使用字节流
import java.io.*;
public class BStream
{
public static void main(String[] args) throws IOException
{
FileInputStream sourceStream = null;
FileOutputStream targetStream = null;
try
{
sourceStream = new FileInputStream("sorcefile.txt");
targetStream = new FileOutputStream ("targetfile.txt");
// 读取源文件,然后逐字节,写入目标文件
int temp;
while ((temp = sourceStream.read()) != -1)
targetStream.write((byte)temp);
}
finally
{
if (sourceStream != null)
sourceStream.close();
if (targetStream != null)
targetStream.close();
}
}
}
何时使用字符流而不是字节流?
何时在字符流上使用字节流?
笔记: