引言
      文件的传输和读写通常都离不开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的转换的更多相关文章

  1. C# 流与文件(Stream & File & byte[])

    原文:https://www.cnblogs.com/long-gengyun/archive/2010/03/28/1698681.html 文件概述  文件在操作时表现为流,即流是从一些输入中读取 ...

  2. 转转转--Java File和byte数据之间的转换

    package cn.iworker.file; import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; ...

  3. Java 学习(9):java Stream & File & IO

    Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...

  4. BufferHelp byte[] Stream string FileStream Image Bitmap

    /******* * *** ***** ** ** * * * * * * * * ***** * * * * * * * * * * * * * * * ******* *** * ***** * ...

  5. stream,file,filestream,memorystream简单的整理

    一.Stream 什么是stream?(https://www.cnblogs.com/JimmyZheng/archive/2012/03/17/2402814.html#no8) 定义:提供字节序 ...

  6. 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序列化 - ...

  7. C# Byte[] 转String 无损转换

    C# Byte[] 转String 无损转换 转载请注明出处 http://www.cnblogs.com/Huerye/ /// <summary> /// string 转成byte[ ...

  8. OpenCV中IplImage图像格式与BYTE图像数据的转换

    最近在将Karlsruhe Institute of Technology的Andreas Geiger发表在ACCV2010上的Efficent Large-Scale Stereo Matchin ...

  9. 关于C# byte[]与struct的转换

    转自:http://blog.chinaunix.net/uid-215617-id-2213082.html Some of the C# code I've been writing recent ...

随机推荐

  1. wget: unable to resolve host address “http”

    [root@one ~]# wget www.baidu.com --2017-09-24 10:20:23-- http://www.baidu.com/ Resolving http... fai ...

  2. boost之字符串与文本处理

    C++标准库中字符串转数值使用函数atoi(),数值转字符串使用printf系列函数. boost中使用转换函数操作符lexical_cast<>进行转换,实际上是模板函数.自定义类型,要 ...

  3. PyQt4测试安装ok的程序

    # -*- coding: utf-8 -*- """ ------------------------------------------------- File Na ...

  4. Android:日常学习笔记(6)——探究活动(4)

    Android:日常学习笔记(6)——探究活动(4) 活动的启动模式 standard模式 standard是活动默认的启动模式,在不进行显示定义的情况下,所有活动都会自动使用这种启动模式. stan ...

  5. iOS NSCoding 的学习 和 使用

    起初接触的轻量级 物理存储 方式 是 plist  可以存储 系统级别的 字典 数组   但是不能存储自定义的对象类 那会 用自定义对象做存储的 需求也不大 主要 是 还没建立面向对象意识,会的也少. ...

  6. 验证——正则<37>

    1,郵箱合法性驗證 /* * 郵箱合法性驗證 * @method matchTel * @papram{string} str,電子郵箱 * @return{boolean} * */ functio ...

  7. 以太网100Mhz频率为什么可以达到带宽1000Mbps

    转: https://wenku.baidu.com/view/353ea8ecb0717fd5370cdc0b.html

  8. 【Head First Servlets and JSP】迷你MVC:JarDownload的完整实现

    1.首先,写一个download.html放至D:\apache-tomcat-7.0.77\webapps\JarDownload-v1. <!DOCTYPE HTML> <htm ...

  9. nf_conntrack之解决方案

    1.现象 在/var/log/message中出现以下信息 Dec 8 11:22:29 product08 kernel: nf_conntrack: table full, dropping pa ...

  10. [Android]开源中国源码分析之一---启动界面

    开源中国android端版本号:2.4 启动界面: 在AndroidManifest.xml中找到程序的入口, <activity android:name=".AppStart&qu ...