【.Net】Byte,Stream,File的转换
引言
文件的传输和读写通常都离不开Byte,Stream,File这个类,这里我简单封装一下,方便使用.
帮助类
public static class FileHelper
{ /// <summary>
///Stream转化成byte数组
/// </summary>
/// <param name="stream"></param>
/// <returns></returns>
public static byte[] StreamToBytes(Stream stream)
{
MemoryStream memoryStream =new MemoryStream();
stream.CopyTo(memoryStream);
return memoryStream.ToArray(); // MemoryStream memoryStream = new MemoryStream();
//byte[] btContent = new byte[512];
//int intSize = 0;
//intSize = stream.Read(btContent, 0, 512);
//while (intSize > 0)
//{
// memoryStream.Write(btContent, 0, intSize);
// intSize = stream.Read(btContent, 0, 512);
//}
// return memoryStream.ToArray();
} /// <summary>
///byte数组转化成Stream
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public static Stream BytesToStream(byte[] bytes)
{
return new MemoryStream(bytes);
} /// <summary>
///将流保存成文件
/// </summary>
/// <param name="stream">流</param>
/// <param name="filepath">保存文件的路径</param>
public static void StreamToFile(Stream stream,string filepath)
{
byte[] bytes = StreamToBytes(stream);
FileStream fileStream = new FileStream(filepath, FileMode.Create);
fileStream.Write(bytes, , bytes.Length);
fileStream.Flush();
fileStream.Close();
} /// <summary>
///将数组保存成文件
/// </summary>
/// <param name="bytes">byte数组</param>
/// <param name="filepath">保存文件的路径</param>
public static void BytesToFile(byte[] bytes, string filepath)
{
//FileStream fileStream = new FileStream(filepath, FileMode.Create);
//fileStream.Write(bytes, 0, bytes.Length);
//fileStream.Flush();
//fileStream.Close(); File.WriteAllBytes(filepath, bytes); } /// <summary>
///读取文件转化成流
/// </summary>
/// <param name="filepath">文件路径</param>
/// <returns></returns>
public static Stream FileToStream(string filepath)
{
FileStream fileStream = new FileStream(filepath, FileMode.Open);
MemoryStream memoryStream = new MemoryStream();
fileStream.CopyTo(memoryStream);
fileStream.Close();
memoryStream.Position = ;
return memoryStream;
} /// <summary>
///读取文件转成问Byte数组
/// </summary>
/// <param name="filepath"></param>
/// <returns></returns>
public static byte[] FileToBytes(string filepath)
{
//FileStream fileStream = new FileStream(filepath, FileMode.Open);
//byte[] bytes= StreamToBytes(fileStream);
//fileStream.Close();
//return bytes; return File.ReadAllBytes(filepath);
} /// <summary>
/// 读取文件转化成字符串
/// </summary>
/// <param name="filepath">文件路径</param>
/// <param name="encode"></param>
/// <returns>字符串</returns>
public static string FileToString(string filepath, Encoding encode)
{
//StreamReader streamReader = new StreamReader(filepath, encode);
//string text = streamReader.ReadToEnd();
//streamReader.Close(); string text = File.ReadAllText(filepath, encode);
return text;
} /// <summary>
/// 流转化成字符串
/// </summary>
/// <param name="stream">流</param>
/// <param name="encode"></param>
/// <returns>字符串</returns>
public static string StreamToString(Stream stream, Encoding encode)
{
if (stream.CanSeek)
{
stream.Position = ;
}
StreamReader streamReader = new StreamReader(stream,encode);
string text =streamReader.ReadToEnd();
streamReader.Close();
return text;
} /// <summary>
/// byte数组转化字符串
/// </summary>
/// <param name="bytes">byte数组</param>
/// <param name="encode">编码</param>
/// <returns></returns>
public static string BytesToString(byte[] bytes, Encoding encode)
{
return encode.GetString(bytes);
} /// <summary>
/// 字符串转化byte数组
/// </summary>
/// <param name="text">字符串</param>
/// <param name="encode">编码</param>
/// <returns></returns>
public static byte[] StringToBytes(string text, Encoding encode)
{
return encode.GetBytes(text);
} /// <summary>
/// 字符串转化成流
/// </summary>
/// <param name="text">字符串</param>
/// <param name="encode">编码</param>
/// <returns></returns>
public static Stream StringToStream(string text, Encoding encode)
{
var bytes= StringToBytes(text, encode);
return BytesToStream(bytes);
} /// <summary>
/// 往文件中追加文本内容
/// </summary>
/// <param name="text">文本内容</param>
/// <param name="filepath">文件路径</param>
/// <param name="encode">编码</param>
public static void AppendStringToFile(string text, string filepath, Encoding encode)
{
File.AppendAllText(filepath, Environment.NewLine + text, encode);
} }
【.Net】Byte,Stream,File的转换的更多相关文章
- C# 流与文件(Stream & File & byte[])
原文:https://www.cnblogs.com/long-gengyun/archive/2010/03/28/1698681.html 文件概述 文件在操作时表现为流,即流是从一些输入中读取 ...
- 转转转--Java File和byte数据之间的转换
package cn.iworker.file; import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; ...
- Java 学习(9):java Stream & File & IO
Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...
- BufferHelp byte[] Stream string FileStream Image Bitmap
/******* * *** ***** ** ** * * * * * * * * ***** * * * * * * * * * * * * * * * ******* *** * ***** * ...
- stream,file,filestream,memorystream简单的整理
一.Stream 什么是stream?(https://www.cnblogs.com/JimmyZheng/archive/2012/03/17/2402814.html#no8) 定义:提供字节序 ...
- Serializable 序列化 The byte stream created is platform independent. So, the object serialized on one platform can be deserialized on a different platform.
Java 序列化接口Serializable详解 - 火星猿类 - 博客园 http://www.cnblogs.com/tomtiantao/p/6866083.html 深入理解JAVA序列化 - ...
- C# Byte[] 转String 无损转换
C# Byte[] 转String 无损转换 转载请注明出处 http://www.cnblogs.com/Huerye/ /// <summary> /// string 转成byte[ ...
- OpenCV中IplImage图像格式与BYTE图像数据的转换
最近在将Karlsruhe Institute of Technology的Andreas Geiger发表在ACCV2010上的Efficent Large-Scale Stereo Matchin ...
- 关于C# byte[]与struct的转换
转自:http://blog.chinaunix.net/uid-215617-id-2213082.html Some of the C# code I've been writing recent ...
随机推荐
- IDEA 跑spring项目找不到get,set的问题
@Autowired的用法和作用 这个注解就是spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get. iDEA下安装lombok这个插件就可 ...
- ModelForm组件介绍
照抄自:http://www.jb51.net/article/126786.htm ModelForm组件如同它的名字一样就是把model和form结合起来,在有些场景可以起到意想不到的效果. 先来 ...
- Ubuntu 安装VMware Tools
安装步骤: 首先,点击VMware菜单的-VM-Install VMware Tools (虚拟机-装载VMwareTool 工具) 这时,在Ubuntu下会自动加载Linux版的VMware Too ...
- javascript; JS版HtmlEncode方法,结果与C#中HttpUtility.HtmlEncode方法一样。
<script type="text/javascript"> function HTMLEncode(html) { var temp = document.crea ...
- Windows读写文件的猫腻
这里主要涉及对于回车换行的讨论. 回车:\r 换行:\n Windows读写文件分为普通文件读写和二进制文件读写. 如果以二进制的方式读写文件(如rb, wb),将会完全的把文件内容读出来,不做任何处 ...
- UCOS2_STM32F1移植详细过程
源:UCOS2_STM32F1移植详细过程(三) UCOS2_STM32移植过程.系统内核.事件描述(汇总)
- MongoDB部署指南
下載安裝包 http://www.mongodb.org/ 安裝MongoDB systemLog: destination: file path: E:\MongoDB\log\mongo.log ...
- python中threading多线程
python中有两个处理多线程的模块thread和threading.其中thread提供了多线程底层支持的模块,以低级原始的发那个是来处理和控制线程,使用起来较为复杂:而threading基于thr ...
- juniper ssg 常用命令
netscreen juniper ssg操作命令 2013年4月10日 命令行下取得配置信息 get config 命令行下取得相应时间设置 get clock set vrout ...
- .NET及JAVA 中如何使用代码启动程序
.NET 中: System.Diagnostics.Process.Start("应用程序"); JAVA中: ProcessBuilder pb=new ProcessB ...