android - Android Jetpack 安全性 - 示例代码无法编译“找不到适合 FileReader(EncryptedFile) 的构造函数”
问题描述
我正在测试 Google 的 Android Jetpack 测试版的安全性。
这里的示例代码很简单,但它不会编译:
foo.java:274: error: no suitable constructor found for FileReader(EncryptedFile)
new BufferedReader(new FileReader(encryptedFile))) {
我已将依赖项包含在我的 gradle 中:
dependencies {
implementation "androidx.security:security-crypto:1.0.0-rc01"
}
在此处搜索 FileReader 文档,我看不到如何使此示例代码正常工作。
为了完整起见,这是我的功能:
259 void jetpackTest()
260 {
261 KeyGenParameterSpec keyGenParameterSpec = MasterKeys.AES256_GCM_SPEC;
262 String masterKeyAlias = MasterKeys.getOrCreate(keyGenParameterSpec);
263
264 String fileToRead = "my_sensitive_data.txt";
265 EncryptedFile encryptedFile = new EncryptedFile.Builder(
266 new File("private", fileToRead),
267 this,
268 masterKeyAlias,
269 EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB
270 ).build();
271
272 StringBuffer stringBuffer = new StringBuffer();
273 try (BufferedReader reader =
274 new BufferedReader(new FileReader(encryptedFile))) {
275
276 String line = reader.readLine();
277 while (line != null) {
278 stringBuffer.append(line).append('\n');
279 line = reader.readLine();
280 }
281 } catch (IOException e) {
282 // Error occurred opening raw file for reading.
283 } finally {
284 String contents = stringBuffer.toString();
285 }
286 }
解决方案
Kotlin 版本也有一些错误,我认为有错误或错字。
根据示例代码中写入文件的代码,您可以尝试如下:
import java.io.InputStreamReader;
BufferedReader reader = new BufferedReader(new InputStreamReader(encryptedFile.openFileInput()))
推荐阅读
- excel - 如何使用 Excel 导入表格并邮寄?
- email - 如何使用电子邮件发送雪花云数据平台查询结果?
- c++ - C++ 接受 int 作为字符向量中的元素
- excel - Excel 索引和匹配使用带有通配符的布尔 OR
- jquery - Laravel 8 - jQuery 模态数据未显示
- visual-studio-2019 - VS2019 由于 RemoteInvocationException,Razor 页面中没有智能感知
- python - 无法在 R 3.6.3 中安装 umx 包装
- python - Numba:如何将异构值 Python 字典的内容复制到 Numba Dict 中?
- angular - 如何连接两个响应,依次调用。第二个http调用取决于第一个返回的值?
- javascript - 导入查询会破坏所有 Javascript