下面小编就为大家带来一篇 Java 和 C# 输入输出流的方法 (详解) 小编觉得挺不错的, 现在就分享给大家, 也给大家做个参考一起跟随小编过来看看吧
1,Java 中操作方法:
- import java.io.*;
- public class FileInputStreamTest
- {
- public static void main(String[] args) throws IOException
- {
- // 创建字节输入流
- FileInputStream fis = new FileInputStream("FileInputStreamTest.java");
- // 创建一个长度为 1024 的竹筒
- byte[] bbuf = new byte[1024];
- // 用于保存实际读取的字节数
- int hasRead = 0;
- // 使用循环来重复取水的过程
- while((hasRead = fis.read(bbuf))>0)
- {
- // 取出 "竹筒" 中(字节), 将字节数组转成字符串输入
- System.out.println(new String(bbuf,0,hasRead));
- }
- fis.close();
- }
- }
- import java.io.*;
- public class FileReaderTest
- {
- public static void main(String[] args) throws IOException
- {
- FileReader fr = null;
- try
- {
- // 创建字符输入流
- fr = new FileReader("FileReaderTest.java");
- // 创建一个长度为 32 的 "竹筒"
- char[] cbuf = new char[32];
- // 用于保存实际读取的字符数
- int hasRead = 0;
- // 使用循环来重复取水的过程
- while((hasRead = fr.read(cbuf))>0)
- {
- // 取出 "竹筒" 中(字节), 将字节数组转成字符串输入
- System.out.println(new String(cbuf,0,hasRead));
- }
- }
- catch (IOException ioe)
- {
- ioe.printStackTrace();
- }
- finally
- {
- // 关闭文件输入流
- if(fr != null)
- {
- fr.close();
- }
- }
- }
- }
- 2,C# 中操作方法:
- /* - - - - - - - - - - - - - - - - - - - - - - - -
- * Stream 和 byte[] 之间的转换
- * - - - - - - - - - - - - - - - - - - - - - - - */
- /// <summary>
- /// 将 Stream 转成 byte[]
- /// </summary>
- public byte[] StreamToBytes(Stream stream)
- {
- byte[] bytes = new byte[stream.Length];
- stream.Read(bytes, 0, bytes.Length);
- // 设置当前流的位置为流的开始
- stream.Seek(0, SeekOrigin.Begin);
- return bytes;
- }
- /// <summary>
- /// 将 byte[] 转成 Stream
- /// </summary>
- public Stream BytesToStream(byte[] bytes)
- {
- Stream stream = new MemoryStream(bytes);
- return stream;
- }
- /* - - - - - - - - - - - - - - - - - - - - - - - -
- * Stream 和 文件之间的转换
- * - - - - - - - - - - - - - - - - - - - - - - - */
- /// <summary>
- /// 将 Stream 写入文件
- /// </summary>
- public void StreamToFile(Stream stream,string fileName)
- {
- // 把 Stream 转换成 byte[]
- byte[] bytes = new byte[stream.Length];
- stream.Read(bytes, 0, bytes.Length);
- // 设置当前流的位置为流的开始
- stream.Seek(0, SeekOrigin.Begin);
- // 把 byte[] 写入文件
- FileStream fs = new FileStream(fileName, FileMode.Create);
- BinaryWriter bw = new BinaryWriter(fs);
- bw.Write(bytes);
- bw.Close();
- fs.Close();
- }
- /// <summary>
- /// 从文件读取 Stream
- /// </summary>
- public Stream FileToStream(string fileName)
- {
- // 打开文件
- FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
- // 读取文件的 byte[]
- byte[] bytes = new byte[fileStream.Length];
- fileStream.Read(bytes, 0, bytes.Length);
- fileStream.Close();
- // 把 byte[] 转换成 Stream
- Stream stream = new MemoryStream(bytes);
- return stream;
- }
来源: http://www.phperz.com/article/18/0223/359666.html