博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
输入输出流大全
阅读量:3525 次
发布时间:2019-05-20

本文共 3496 字,大约阅读时间需要 11 分钟。

如果通过一个字节流把文本文件的内容输出到显示器上,当输出汉字时就会出现乱码

/*	2009年7月3日10:41:46	本程序证明了:		如果通过一个字节流把文本文件的内容输出到显示器上,当输出汉字时就会出现乱码*/import java.io.*;public class TestIO_2{	public static void main(String[] args) throws Exception	{		FileInputStream fr = new FileInputStream("D:/share/S5/di-20 流/TestIO.java");		int ch;		int cnt = 0;				ch = fr.read();		while (-1 != ch)		{			++cnt;			System.out.printf("%c", (char)ch);			ch = fr.read();		}		System.out.printf("该文件字符的个数是:%d\n", cnt);		fr.close();	}}
二。利用 BufferedReader 和 BufferedWriter 完成文本文件的复制
/*	利用 BufferedReader 和 BufferedWriter 完成文本文件的复制*/import java.io.*;public class TestBufferedReaderWriterCopy{	public static void main(String[] args)	{		BufferedReader br = null;		BufferedWriter bw = null;				try		{			br = new BufferedReader(						new FileReader("D:\\share\\S5\\di-20 流\\TestBufferedReaderWriterCopy.java")					);			bw = new BufferedWriter(						new FileWriter("d:/share/Writer.txt")					);			String str = null;						while (null != (str=br.readLine()))  //br.readLine()读取一行字符,但会将读取的换行符自动丢弃,即返回的String对象中并不包括换行符			{				bw.write(str);				bw.newLine();  //写入一个换行符  这行不能省			}			bw.flush();		}		catch (FileNotFoundException e)		{			e.printStackTrace();			System.exit(-1);		}		catch (IOException e)		{			e.printStackTrace();			System.exit(-1);		}		finally		{			try			{				bw.close();				br.close();			}			catch (IOException e)			{				e.printStackTrace();				System.exit(-1);			}		}	}}
三。

/*	2009年7月3日10:42:43	通过字符流完成文本文件的复制	*/import java.io.*;public class TestFileReaderWriterCopy{	public static void main(String[] args) throws Exception	{		FileReader fr = new FileReader("D:\\share\\S5\\di-20 流\\TestFileReaderWriterCopy.java");		FileWriter fw = new FileWriter("d:/zhangsan.haha");		int ch;				ch = fr.read();		while (-1 != ch)		{			fw.write(ch);			ch = fr.read();		}				fw.flush();				fr.close();		fw.close();	}}

/*	2009年7月3日10:43:18	本程序证明了:		通过字符流无法完成非文本文件的复制		或者说:			字符流只能处理文本文件			不能处理非文本文件	*/import java.io.*;public class TestFileReaderWriterCopy_2{	public static void main(String[] args) throws Exception	{		FileReader fr = new FileReader("E:\\IBM教学\\java\\lesson_io\\妹妹来看我.mp3");		FileWriter fw = new FileWriter("d:/zhangsan.haha");		int ch;				ch = fr.read();		while (-1 != ch)		{			fw.write(ch);			ch = fr.read();		}				fw.flush();				fr.close();		fw.close();	}}

/*	2009年7月3日10:44:37	本程序证明了:		通过字节流可以完成音频格式文件的复制		实际上我们通过字节流可以完成任意格式文件的复制				但本程序有个缺点:			没有缓冲区, 处理速度慢					可以参考对比"TestInputStreamOutputStreamCopy_3.java"*/import java.io.*;public class TestInputStreamOutputStreamCopy{	public static void main(String[] args) throws Exception	{		FileInputStream fr = new FileInputStream("E:\\IBM教学\\java\\lesson_io\\妹妹来看我.mp3");		FileOutputStream fw = new FileOutputStream("d:/zhangsan.haha");		int ch;				ch = fr.read();		while (-1 != ch)		{			fw.write(ch);			ch = fr.read();		}				fw.flush();				fr.close();		fw.close();	}}

/*	2009年7月3日10:45:49	本程序证明了:		带缓冲区的字节流处理文件的速度要快于不带缓冲区的字节流处理文件的速度				可以参考对比"TestInputStreamOutputStreamCopy.java"*/import java.io.*;public class TestInputStreamOutputStreamCopy_3{	public static void main(String[] args) throws Exception	{		BufferedInputStream bis = new BufferedInputStream( new FileInputStream("E:\\IBM教学\\java\\lesson_io\\妹妹来看我.mp3"));		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("d:/zhangsan.haha"));		byte[] buf = new byte[1024];		int len;				len = bis.read(buf);		while (-1 != len)		{			bos.write(buf, 0, len);			len = bis.read(buf);		}				bos.flush();				bos.close();		bis.close();	}}

转载地址:http://alrqj.baihongyu.com/

你可能感兴趣的文章
如何设计一个秒杀系统 -- 架构原则
查看>>
如何设计一个秒杀系统 -- 动静分离方案
查看>>
JWT 快速了解
查看>>
实习日志一
查看>>
排序算法稳定性
查看>>
图算法总结(判断有环、最短路径)
查看>>
spring中的类
查看>>
python练习编程网址
查看>>
Python练习小程序1
查看>>
pytorch用于多标签分类的bceloss
查看>>
C++程序设计:打印杨辉三角形
查看>>
C# 方法内改变参数的引用 不影响方法外的值
查看>>
C# vs2019 智能提示中文突然变成英文
查看>>
编译内核驱动模块出错(./arch/x86/include/asm/xxx fatal error: asm/xxx: No such file or directory)
查看>>
分组加密(ECB、CBC、CFB、OFB)实现(Java)
查看>>
RSA算法原理及实现(Java)
查看>>
中国剩余定理(超详细讲解)
查看>>
Golang之Gin框架源码解读——第一章
查看>>
Golang之Gin框架源码解读——第二章
查看>>
Golang之Gin框架源码解读——第三章
查看>>