フラッターファイルツール

依存性を追加します。

  path_provider:^ 0.5.0 + 1
インポート 'DART:変換' ;
 インポート 'DART:IO' ; 

インポート 'パッケージ:path_provider / path_provider.dart' ; 

クラスのfileutils {
   // /一時ディレクトリ:/data/user/0/com.example.myapp/cache 
  // /一時ディレクトリ(キャッシュ)、システムはいつでもクリアすることができます。
  静的フューチャー<文字列> getTempDir(){非同期
     試し{ 
      ディレクトリのtempDirは = のawait getTemporaryDirectoryを();
       を返すtempDir.pathを; 
    } キャッチ(ERR){ 
      印刷(ERR); 
      戻り ヌル; 
    } 
  } 

  /// Documentsディレクトリ:/data/user/0/com.example.myapp/app_flutter 
  // ファイルストレージのためのアプリケーションの/ディレクトリだけがアクセスできます。アプリケーションが削除された場合にのみ、システムはディレクトリをクリアします。
  静的フューチャー<文字列> getAppDocDir(){非同期
     試し{ 
      ディレクトリappDocDirは = のawait getApplicationDocumentsDirectoryを();
       を返すappDocDir.pathを; 
    } キャッチ(ERR){ 
      印刷(ERR); 
      戻り ヌル; 
    } 
  } 

  静的readFileの(filePathに){
     返す 新しい新しいファイルを( '$ filePathには' ); 
  } 

  // /ファイルが読み込まJSON 
  静的フューチャー<文字列>readJsonFile(filePathに)非同期{
     試みる{
       最終的なファイル= readFileの(filePathに)。
      復帰は)(file.readAsStringを待ちます。
    } キャッチ(ERR){ 
      プリント(ERR)。
      リターン ヌル
    } 
  } 

  // /写入JSON文件
  静的将来<ファイル> writeJsonFile(OBJファイルパス)非同期{
     試みる{
       最終的なファイル= readFileの(filePathに)。
      リターンが待つfile.writeAsString(json.encode(OBJ)); 
    } キャッチ(ERR){ 
      プリント(ERR)。
      リターン はnull; 
    } 
  } 
}

使用します。

      FileUtils.getAppDocDir()を((文字列appDocDir){ 
      文字列filePathに = appDocDir + '/test.json' ; 
      FileUtils.readJsonFile(filePathに).then((文字列SMS){ 
        場合(_sms == NULL || sms.isEmpty ){ 
      
          リターン; 
        } 
        SETSTATE((){ 
          地図marketingSmsMap = json.decode(SMS);
           databeanは _bean = 新しいDataBean.fromJson(marketingSmsMap); 
        }); 
      }); 
    });

 

おすすめ

転載: www.cnblogs.com/loaderman/p/11532295.html