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;
- }