OpenStandardOutput() public static méthode

public static OpenStandardOutput ( ) : System.IO.Stream
Résultat System.IO.Stream
Exemple #1
0
        /// <summary>
        /// エントリーポイント
        /// </summary>
        /// <param name="path">ファイルへのパス。なし、もしくは`-`の場合はSTDINから読み込む</param>
        /// <param name="decode">trueのときデコード動作をする</param>
        /// <param name="inputEncoding">入力ストリームのエンコーディング</param>
        /// <param name="outputEncoding">出力ストリームのエンコーディング</param>
        /// <returns>ステータスコード</returns>
        public int Run(
            [Option(0, "FILE")] string path     = "-",
            [Option("d", "decode")] bool decode = false,
            [Option("f", "input encoding")] StreamEncoding inputEncoding   = StreamEncoding.system,
            [Option("t", "output encoding")] StreamEncoding outputEncoding = StreamEncoding.system
            )
        {
            var iEncoding = GetEncoding(inputEncoding);
            var oEncoding = GetEncoding(outputEncoding);

            using var oStream = new StreamWriter(Console.OpenStandardOutput(), oEncoding);

            using var stream = GetStream(path);
            if (decode)
            {
                try {
                    var decoder = new Wbase59Decoder(stream, iEncoding);
                    oStream.Write(oEncoding.GetString(decoder.Decode().ToArray()));
                }
                catch (InvalidNabeFormatException e) {
                    LogError("ナベストリーム解析中にエラーが発生しました");
                    LogError(e.Message);
                    return(1);
                }
                catch (InvalidNabeIvsException e) {
                    LogError("不正なIvsです");
                    LogError(e.Message);
                    return(1);
                }
                catch (ParityNabeCheckFailedException e) {
                    LogError(e.Message);
                    return(1);
                }
                catch (Exception e) {
                    LogError(e);
                    return(1);
                }
            }
            else
            {
                try {
                    var encoder = new Wbase59Encoder(stream, iEncoding);
                    foreach (var nabe in encoder.Encode())
                    {
                        oStream.Write(new UnicodeEncoding(true, false).GetString(nabe.GetSpan()));
                    }

                    oStream.Flush();
                }
                catch (InvalidNabeFormatException e) {
                    LogError(e);
                    return(1);
                }
            }

            return(0);
        }
Exemple #2
0
 private static (Stream stream, string name) GetOutputStream()
 {
     if (outFile == null)
     {
         // Null output (mostly for benchmarking).
         return(Stream.Null, "Null stream.");
     }
     else if (outFile == "")
     {
         // Standard output.
         return(Con.OpenStandardOutput(OutBufferSize), "Standard Output.");
     }
     else
     {
         // File output.
         return(new FileStream(outFile, FileMode.Create, FileAccess.Write, FileShare.None, OutBufferSize), outFile);
     }
 }
Exemple #3
0
 /// <summary>
 /// 获取设置为指定缓冲区大小的标准输出流。
 /// </summary>
 /// <param name="bufferSize">内部流缓冲区大小。</param>
 /// <returns>标准输出流。</returns>
 /// <exception cref="System.ArgumentOutOfRangeException">bufferSize 小于或等于零。</exception>
 public static Stream OpenStandardOutput(int bufferSize)
 {
     return(Console.OpenStandardOutput(bufferSize));
 }
Exemple #4
0
 /// <summary>
 /// 获取标准输出流。
 /// </summary>
 /// <returns>标准输出流。</returns>
 public static Stream OpenStandardOutput()
 {
     return(Console.OpenStandardOutput());
 }