本文整理汇总了C#中System.Text.Encoding.ShouldNotBeNull方法的典型用法代码示例。如果您正苦于以下问题:C# Encoding.ShouldNotBeNull方法的具体用法?C# Encoding.ShouldNotBeNull怎么用?C# Encoding.ShouldNotBeNull使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Text.Encoding
的用法示例。
在下文中一共展示了Encoding.ShouldNotBeNull方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ToStream
/// <summary>
/// 문자열을 스트림 (<see cref="System.IO.MemoryStream"/>)의 인스턴스로 변환한다.
/// </summary>
/// <param name="s">대상 문자열</param>
/// <param name="enc">인코딩 형식</param>
/// <returns>변환된 Stream 인스턴스 객체</returns>
/// <remarks>사용하고 난 Stream 인스턴스 객체는 Close()를 호출하여 메모리에서 제거해야 한다.</remarks>
public static Stream ToStream(this string s, Encoding enc) {
enc.ShouldNotBeNull("enc");
if(s.IsNull())
return new MemoryStream();
var stream = new MemoryStream(s.Length * 2);
var writer = new StreamWriter(stream, enc, 1024);
writer.Write(s);
writer.Flush();
stream.SetStreamPosition();
return stream;
}
示例2: ReadAllText
/// <summary>
/// 지정한 경로의 파일 내용을 비동기적으로 모두 읽어 문자열로 반환하는 Task를 빌드합니다.
/// </summary>
/// <param name="path">읽을 파일 전체경로</param>
/// <param name="encoding">파일 내용 인코딩 방식</param>
/// <returns>파일 내용을 문자열로 반환하는 작업</returns>
public static Task<string> ReadAllText(string path, Encoding encoding = null) {
path.ShouldNotBeWhiteSpace("path");
encoding.ShouldNotBeNull("encoding");
encoding = encoding ?? Encoding.UTF8;
if(IsDebugEnabled)
log.Debug("파일 내용을 비동기적으로 모두 읽어, 반환하는 작업을 빌드합니다. path=[{0}], encoding=[{1}]", path, encoding);
var fileStream = OpenRead(path);
fileStream.ShouldNotBeNull("fileStream");
var builder = new StringBuilder();
// 실제 파일 내용을 읽는 작업
var asyncRead = fileStream.ReadBufferAsync(BufferSize,
(buffer, count) => builder.Append(encoding.GetString(buffer, 0, count)));
// 파일을 비동기적으로 다 읽고 나서, 파일 Stream을 닫는 후처리 작업을 지정하고 반환한다.
//
var closedFileTask =
asyncRead.ContinueWith(antecedent => {
if(IsDebugEnabled)
log.Debug("비동기적으로 파일을 모두 읽었습니다... FileStream을 닫습니다... file=[{0}]", path);
var ex = antecedent.Exception;
With.TryAction(() => {
if(fileStream != null)
fileStream.Close();
});
if(ex != null)
throw ex;
return builder.ToString();
},
TaskContinuationOptions.ExecuteSynchronously);
return closedFileTask;
}
示例3: Base64Encode
/// <summary>
/// 일반 문자열을 Base64 문자열로 만든다.
/// </summary>
/// <param name="s"></param>
/// <param name="enc"></param>
/// <returns></returns>
public static string Base64Encode(this string s, Encoding enc) {
if(IsEmpty(s))
return string.Empty;
enc.ShouldNotBeNull("enc");
return Base64Encode(ToBytes(s, enc));
}
示例4: ToBytes
/// <summary>
/// 문자열을 주어진 인코딩 방식을 이용하여 Byte Array로 변환한다.
/// </summary>
/// <param name="s">변환할 문자열</param>
/// <param name="enc">인코딩 방식</param>
/// <returns>변환된 바이트 배열</returns>
public static byte[] ToBytes(this string s, Encoding enc) {
enc.ShouldNotBeNull("enc");
return enc.GetBytes(s);
}
示例5: ToTextUnsafe
public static string ToTextUnsafe(this sbyte[] bytes, Encoding encoding) {
bytes.ShouldNotBeNull("bytes");
encoding.ShouldNotBeNull("encoding");
if(bytes.Length == 0)
return string.Empty;
unsafe {
fixed(sbyte* fixedPtr = bytes)
return new string(fixedPtr, 0, bytes.Length, encoding);
}
}
示例6: ToText
/// <summary>
/// 지정된 인코딩 방식으로 주어진 범위의 Byte 배열을 문자열로 변환한다.
/// </summary>
/// <param name="bytes">원본 바이트 배열</param>
/// <param name="enc">인코딩 방식</param>
/// <param name="index">시작 위치</param>
/// <param name="count">변환할 갯수</param>
/// <returns>변환된 문자열</returns>
public static string ToText(this byte[] bytes, int index, int count, Encoding enc) {
if(bytes == null || bytes.Length == 0)
return string.Empty;
enc.ShouldNotBeNull("enc");
return enc.GetString(bytes, index, count).TrimEnd(NullTerminatorChar);
}