【.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 ...
随机推荐
- KindEditor 4.1.11最新版 网站实例 包含使用方法 下载地址
KindEditor是非常好的富媒体文本编辑系统,短小精悍,可惜网上找到的都是有各种问题!一怒之下,我自己进行了修改和配置,搞成了一个网站示例.下载解压后,可以直接运行!!完全无问题.! Kinded ...
- 算法题14 小Q歌单,牛客网,腾讯笔试题
算法题14 小Q歌单,牛客网,腾讯笔试题 题目: 小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成一个总长度正好为K的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌 ...
- 解释python中join()和split()函数
join能让我们将指定字符添加至字符串中 a=') print(a) print(type(a)) #1,2,3,4,5,6 #<class 'str'> split()能让我们用指定字符 ...
- vue框架(一)
一.介绍 1.Vue是什么? Vue.js (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关 ...
- jquery的autocomplete在firefox下不支持中文输入法的bug
Query.Autocomplete 是jquery的流行插件,能够很好的实现输入框的自动完成(autocomplete).建议提示(input suggest)功能,支持ajax数据加载. 但唯一遗 ...
- Python学习进程(7)字符串
本节介绍字符串的创建与操作方法. (1)创建字符串: 创建字符串既可以用单引号也可以用双引号: root@SJM:/home/sunjimeng/桌面# cat text.py ...
- RTC是DS1339,驱动采用的是rtc-ds1307.c
我的外部RTC是DS1339,驱动采用的是rtc-ds1307.c在内核里选上了 <*> I2C support 以及 [*] Set system time from RTC on ...
- NAS、SAN、DAS 说明
NAS 说明 1.NAS(Network Attached Storage:网络附属存储) 2.NAS 是一种采用直接与网络介质相连的特殊设备实现数据存储的机制. 3.NAS本身能够支持多种协议(如N ...
- 主攻ASP.NET.4.5.1 MVC5.0之重生:创建UIHelper通用自定义分页和选择开关与PagesHelper和IsSelect简单用法
@helper放入地方 分页效果 选择开关编辑调用 <dl> <dd class="dc1">是否主管:</dd> <dd> @UI ...
- PHP面试题 – 培训学校真实面试内部资料
1.PHP解析URL是哪个函数? parse_url() 是讲URL解析成有固定键值的数组的函数. $ua=parse_url('http://username:password@hostname/p ...