zoukankan      html  css  js  c++  java
  • dart 自己写一个简单的文件编码器

     1 // import 'dart:convert';
     2 import 'dart:io';
     3 
     4 main() async {
     5   var src = File('./lib/convert/source.txt');
     6   var output = File('./lib/convert/output.txt');
     7 
     8   var ins = src.openRead();
     9   var encoded = convert(ins, 128);
    10   var outs = output.openWrite();
    11   await encoded.pipe(outs);
    12   outs.close();
    13 
    14   // the second transform.
    15   var output2 = File('./lib/convert/output2.txt');
    16   var outs2 = output2.openWrite();
    17   await convert(output.openRead(), -128).pipe(outs2);
    18   outs2.close();
    19 }
    20 
    21 Stream<List<int>> convert(Stream<List<int>> source,
    22     [int key = 128, int base = 256]) async* {
    23   await for (var chunk in source) {
    24     yield encode(chunk, key, base);
    25   }
    26 }
    27 
    28 List<int> encode(List<int> original, [int key = 128, int base = 256]) {
    29     var encoded = List<int>(original.length);
    30     for (var i = 0; i < original.length; i++) {
    31   encoded[i] = (original[i] + key) % base;
    32     }
    33     return encoded;
    34 }
  • 相关阅读:
    面试题三:MySQL
    面试题二:JVM
    面试题一:类加载
    RabbitMq脑裂问题
    数据结构之树学习内容
    JVM全面分析之垃圾收集器
    JVM全面分析之垃圾回收的相关概念
    JVM全面分析之垃圾回收算法
    JVM全面分析之String
    JVM全面分析之执行引擎
  • 原文地址:https://www.cnblogs.com/outerspace/p/10167790.html
Copyright © 2011-2022 走看看