【.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 ...
随机推荐
- MDF损坏或LDF文件损坏
MDF损坏或LDF损坏 MDF丢失或LDF丢失 注意,这些情况必须要相同版本的sql server才能操作成功 当MDF损坏时 1.备份结尾日志 http://www.cnblogs.com/gere ...
- 开机提示memory size decreased怎么办?
ytkah的办公电脑实在是hold不住,win7用2G的内存,基本是在等待中度过的,没有新的只能考虑加格内存了,采购嘛,需走一大堆流程,跟领导请示从其他硬件需求不是很高的电脑那边拔一根内存条吧,小C的 ...
- javascript高级语法三
一.js的正则表达式 1.什么是正则表达式 正则表达式(regular expression)是一个描述字符模式的对象,ECMAScript的RegExp类表示正则表达式,而String和RegExp ...
- 前端基础之JavaScript_(3)_DOM对象
JavaScript之DOM对象 HTML DOM HTML Document Object Model(文档对象模型) HTML DOM 定义了访问和操作HTML文档的标准方法 HTML DOM ...
- PAT 天梯赛 L1-024. 后天 【取余】
题目链接 https://www.patest.cn/contests/gplt/L1-024 题意 给出一个数,表示星期几,输出后天是星期几 思路 取余的时候要小心点 AC代码 #include & ...
- win32调试——OutputDebugString
win32下开发console程序可以直接用printf打印到控制台. 开发图形界面程序时,可以调用OutputDebugString将字符串输出到Debug窗口, 注意是要调试运行才能看到Debug ...
- $《第一行代码:Android》读书笔记——第2章 Activity
(一)创建活动 1.创建活动类 创建没有Activity的项目,发现src文件夹是空的,手动创建一个包com.jyj.demo1,在包中添加一个名为MainActivity的class,该MainAc ...
- 主攻ASP.NET.4.5.1 MVC5.0之重生:系统角色与权限(一)
数据结构 权限分配 1.在项目中新建文件夹Helpers 2.在HR.Helpers文件夹下添加EnumMoudle.Cs namespace HR.Helpers { public enum Enu ...
- transition失效问题
关于transition,css教程中有一个很简单的例子: <!DOCTYPE html> <html> <head> <meta charset=" ...
- Java中Arrays.sort()和Collections.sort()
1.简单示例 sort方法的使用非常的简单明了,下面的例子中,先定义一个比较Dog大小的Comparator,然后将其实例对象作为参数传给sort方法,通过此示例,你应该能够快速掌握Arrays.so ...