/*
* IO继承体系:
*
* |--Reader()
* |--BufferedReader(Reader in) :输入缓冲流
* |--LineNumberReader(Reader in): getLineNumber() setLineNumber()
* |--InputStreamReader(InputStream in,String charsetName) : 输入转换流,创建使用指定字符集的 InputStreamReader
* |--FileReader(String fileName)在给定从中读取数据的文件名的情况下创建一个新 FileReader。
*
* |--Writer()
* |--BufferedWriter(Writer out)创建一个使用默认大小输出缓冲区的缓冲字符输出流
* |--OutputStreamWriter(OutputStream out)创建使用默认字符编码的 OutputStreamWriter。
* |--FileWriter(String fileName)根据给定的文件名构造一个 FileWriter 对象
*
*
* |--InputStream()
* |--FileInputStream(String name)
* |--FilterInputStream(InputStream in)
* |--BufferedInputStream(InputStream in)
* |--LineNumberInputStream(InputStream in)
* |--OutputStream()
* |--FileOutputStream(String name)
* |--FilterOutputStream(OutputStream out)
* |--BufferedOutputStream(OutputStream out)
* System.out
* System.in
* 两者返回的皆为字节流对象
* */
* System.out
* System.in
* 两者返回的皆为字节流对象
* */
/*字符流的复制*/
public static void method_01() throws Exception
{
//创建一个字符输入流
FileReader fr = new FileReader("文本.java");
//创建一个输入缓冲流
BufferedReader bufr = new BufferedReader(fr);
//创建一个输出字符流
FileWriter fw = new FileWriter("文本复制.java");
//创建一个输出缓冲流
BufferedWriter bufw = new BufferedWriter(fw);
String str ;
while((str = bufr.readLine())!=null)
{
bufw.write(str);
bufw.newLine();
}
bufr.close();
bufw.close();
}
/*字节流的复制*/
public static void method_02() throws Exception
{
//创建一个输入字节流
FileInputStream fis = new FileInputStream("图片.jpg");
//创建一个输入缓冲流
BufferedInputStream bufi = new BufferedInputStream(fis);
//创建一个输出字节流
FileOutputStream fos = new FileOutputStream("图片复制.jpg");
//创建一个输出缓冲流
BufferedOutputStream bufo = new BufferedOutputStream(fos);
int ch ;
while((ch = bufi.read())!=-1)
{
bufo.write(ch);
}
bufi.close();
bufo.close();
}
/*将System.in键盘输入的字节流转换为字符流,并保存到文件*/
public static void method_03() throws Exception
{
//System.in 返回一个字节流对象
InputStream in = System.in;
//创建一个输入转换流,将字节流转换为字符流
InputStreamReader isr = new InputStreamReader(in);
BufferedReader bufr = new BufferedReader(isr);
FileWriter fw = new FileWriter("控制台输入.txt");
BufferedWriter bufw = new BufferedWriter(fw);
String str = null;
while((str = bufr.readLine())!=null)
{
bufw.write(str);
bufw.newLine();
//bufw.flush();
}
bufr.close();
bufw.close();
}
/*从文件读取字符流,并转换成字节流,在控制台输出*/
public static void method_04() throws Exception
{
FileReader fr = new FileReader("控制台输入.txt");
BufferedReader bufr = new BufferedReader(fr);
OutputStream out = System.out;
OutputStreamWriter osw = new OutputStreamWriter(out);
BufferedWriter bufw = new BufferedWriter(osw);
String str = null ;
while((str = bufr.readLine())!=null)
{
bufw.write(str);
bufw.newLine();
bufw.flush();
}
bufr.close();
bufw.close();
}
}