其他目录,使用 存储访问框架SAF (Storage Access Framwork) 所以在Android 10上即使你拥有了储存空间的读写权限,也无法保证可以正常的进行文件的读写操作。...改为加载Uri的方式,否则图片无法显示出来。...)方法获取字节输入流 InputStream fileInputStream = getContentResolver().openInputStream(uri); FileOutputStream...对于 SAF 的使用,可以查看我之前写的 SAF使用攻略 ,这里就不展开说了。...只请求此权限无效果。
ContentResolver的insert方法,将多媒体文件保存在公共集合目录,不同的Uri对应不同的公共目录,详见3.2.1;其中RELATIVE_PATH的一级目录必须是Uri对应的一级目录,二级目录或者二级以上的目录...contentResolver.takePersistableUriPermission方法可以校验当前的Uri是否有相关授权可以进行文件读写; /** * 使用saf选择目录 */ private...解决方法1: 参见使用MediaStore访问公共目录和使用SAF选择单个文件,使用MediaStore接口访问公共目录中的多媒体文件,或者使用 SAF访问公共目录中的任意文件。...问题分析2: 在Android Q上,使用MediaStore接口只能访问公共目录中的多媒体文件。 解决方法2: 使用SAF向用户申请文件或目录的读写权限,请参见使用SAF选择单个文件。...,请参见使用MediaStore修改文件;使用SAF 获取到文件或目录的Uri时,用户已经授权读写,可以直接使用,但要注意Uri权限的时效,请参见使用SAF获取目录&保存授权。
(File file)FileInputStream(String name) FileOutputStream FileOutputStream(String name)FileOutputStream...(String name, boolean append)FileOutputStream(File file)FileOutputStream(File file, boolean append) BitmapFactorydecodeFile...>=10 是访问其他应用media文件 -->MediaStore API访问其他应用创建的非media文件 --> SAF否访问自己应用创建的文件 -->MediaStore APISAF...,不同的Uri,可以保存到不同的公共目录中。.../** * 创建图片地址uri,用于保存拍照后的照片 Android 10以后使用这种方法 */ private Uri createImageUri() { String status
不管这些内容来自于哪里,不管是哪个应 用调用浏览系统文件内容的命令,系统都会用一个统一的界面让你去浏览。...Client app:一个普通的客户端软件,通过触发ACTION_OPEN_DOCUMENT 和/或 ACTION_CREATE_DOCUMENT就可以接收到来自于Document provider返回的内容...Uri你可以知道什么,而Uri的获取则是通过SAF得到的!...至少实现如下几个方法 queryRoots() queryChildDocuments() queryDocument() openDocument() 还有些其他的方法,但并不是必须的。...document/image%3A69983 这样的链接,我们直接通过上面的方法获得uri即可!
在以上的场景中,涉及到了这些关键点: 把图片存储到sd卡 把绝对路径path传递给qq或者微信 1.1 直接访问sd卡的根目录 通过FileOutPutStream来完成,在Android10以下都没问题.../storage/emulated/0/Android/data/com.demo.test/files 当你再通过FileOutPutStream来存储图片时候,是成功的。...具体的适配逻辑参考篇头的文章~ 二、公共目录下资源访问 Google建议我们采用 mediaStore 或者 SAF 去访问。...uri Uri imageUri = null; //content://media/external/images/media/318952 if (cursor !..._哔哩哔哩_bilibili Android基础课程-Fragment使用方法_哔哩哔哩_bilibili Android基础课程-热修复/热更新技术原理_哔哩哔哩_bilibili 本文转自 https
对于App存放到公共目录文件,通过ContentResolver insert方法中Uri来确定,其中下表中为相对路径,完整为: content://media/...%3E) 1.3.2.2.通过SAF接口 SAF,即Storage Access Framework,通过选择不同的DocumentsProvider,提供给用户打开、浏览文件。...如果需要访问其他应用专属目录数据,需要被访问者按照下列方法来提供: 1.3.3.2.1.通过SAF文件 ● 共享App自定义DocumentsProvider App自定义DocumentsProvider...11移除了来自应用程序中提示允许运行后台定位访问。...错误地使用指针的应用(包括修改 MSB 的应用)会崩溃或遇到其他问题。这是支持未来启用了ARM内存标记扩展 (MTE) 的硬件所必需的变更。
Information( 非权威信息) 服务器已将事务成功处理, 只是实体首部包含的信息不是来自原始服务器, 而是来自资源的副本 204 No Content( 没有内容) 响应报文包含一些首部和一个状态行...URI 不支持的方法。...416 Requested Range Not Satisfiable( 所请求的范围未得到满足) 请求报文请求的是某范围内的指定资源, 但那个范围无效,或者未得到满足 417 Expectation...Error( 内 部 服 务 器错误) 服务器遇到了一个错误, 使其无法为请求提供服务 501 Not Implemented( 未实现) 服务器无法满足客户端请求的某个功能 502 Bad Gateway...( 网关故障) 作为代理或网关使用的服务器遇到了来自响应链中上游的无效响应 503 Service Unavailable(未提供此服务) 服务器目前无法为请求提供服务, 但过一段时间就可以恢复服务 504
203 Non-Authoritative Information(非权威信息) 服务器已将事务成功处理,只是实体首部包含的信息不是来自原始服务器,而是来自资源的副本 204 No Content(没有内容...Not Found(未找到) 服务器无法找到所请求的 URL 405 Method Not Allowed(不允许使用的方法) 请求中有一个所请求的 URI 不支持的方法。...416 Requested Range Not Satisfiable(所请求的范围未得到满足) 请求报文请求的是某范围内的指定资源,但那个范围无效,或者未得到满足 417 Expectation Failed...(无法满足期望) 请求的 Expect 首部包含了一个预期内容,但服务器无法满足 500 Internal Server Error(内部服务器错误) 服务器遇到了一个错误,使其无法为请求提供服务 501...Not Implemented(未实现) 服务器无法满足客户端请求的某个功能 502 Bad Gateway(网关故障) 作为代理或网关使用的服务器遇到了来自响应链中上游的无效响应 503 Service
%3E) 1.3.2.2.通过SAF接口 SAF,即Storage Access Framework,通过选择不同的DocumentsProvider,提供给用户打开、浏览文件。...如果需要访问其他应用专属目录数据,需要被访问者按照下列方法来提供: 1.3.3.2.1.通过SAF文件 ● 共享App自定义DocumentsProvider App自定义DocumentsProvider...移除了来自应用程序中提示允许运行后台定位访问。...错误地使用指针的应用(包括修改 MSB 的应用)会崩溃或遇到其他问题。这是支持未来启用了ARM内存标记扩展 (MTE) 的硬件所必需的变更。...2 兼容性影响 如果您的应用目标Sdk为R则堆指针标记默认开启,目标SDK低于R时,默认关闭。 使用如下命令开启或关闭此特性,查看您的应用是否有错误的使用指针场景。
View.OnClickListener { private static final int CHOOSE_PHOTO=2; private CircleImageView image;//一种用于图片圆形化的控件...=null){ image.setImageBitmap(readPac());//如果头像修改过了,内存中已经新的头像图片。 ...bitmap实例过程来自《第一行代码 第2版》P299// // // // private void savePac(Bitmap bitmap){//保存图片 String...TargetPath=My_info.this.getFilesDir().toString()+File.separator+"imagic";//getFilesDir()方法用于获取/data/data...fileOutputStream); fileOutputStream.flush(); fileOutputStream.close(); }catch
在 Android 10 的设备上,除非在 manifest 中通过主动声明 requestLegacyExternalStorage 属性来选择停用分区存储,否则上述方法是无效的。...对于像视频播放这样的拥有顺序读取的操作,文件路径访问的性能表现与媒体存储相差无几。但是在随机读写的情境下,采取文件路径的方法最多可慢一倍。...存储访问框架 (简称 "SAF") 用于用户授予对目录和文件的访问权限,但是需要您注意的是,SAF 对某些目录的授权仍存在限制,例如根目录和 Android/data 目录。...访问 官方文档 了解关于这些限制和测试相关行为的方法。 应用该如何测试分区存储的变化? 通过这些 兼容性标志,应用可以测试与直接文件路径访问或媒体存储 API 相关的分区存储行为。...但应用要准备处理任何关于此类操作带来的 I/O 错误,而且不应该假设文件始终是可用的。 对于选择退出分区存储的应用,它们何时开始必须兼容分区存储? 在运行 Android 11 或更高版本的设备上。
Java 9 -11 引入的新语法和API 本地变量类型推断 Java 10 就已经引入了新关键词var,该关键词可以在声明局部变量的时候替换类型信息。本地(local)是指方法内的变量声明。...以下所有代码示例都会导致编译器错误: // Cannot infer type: var a; var nothing =null; var lambda=()->System.out.prinltn...BodyHandlers定义响应体的预期类型(例如,字符串,字节数组或文件): var request = HttpRequest.newBuilder() .uri(URI.create("https...List.of从给定的参数创建了一个新的不可变列表。 List.copyOf创建列表的不可变副本。...所以实际上不需要实际创建list实例的副本,因此list和副本是相同的实例。
但返回的 meta 信息不在原始的服务器,而是一个副本。 204:No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档。...请求的资源已被永久的移动到新 URI,返回信息会包括新的 URI,浏览器会自动定向到新 URI。今后任何新的请求都应使用新的 URI 代替。 302:Found 临时移动,与 301 类似。...通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面。 405:Method Not Allowed 客户端请求中的方法被禁止。...416:Requested range not satisfiable 客户端请求的范围无效。...其中常见的具体状态码有:200:请求成功;301:永久重定向;302:临时重定向;404:无法找到此页面;405:请求的方法类型不支持;500:服务器内部出错。
状态码203 非授权信息,请求成功,但是返回的meta信息不再原始的服务器,而是一个副本。...状态码301 永久移动,请求的资源被永久移动到新的URI,返回的信息会包括新的URI,浏览器会自动定向到新的URI,今后任何新的请求都应用使用新的URI代替。...状态码403 服务器理解请求客户端的请求,但是拒绝执行此请求。 状态码404 服务器无法根据客户端的请求找到对应的资源。 状态码405 客户端请求的方法被禁止。...状态码414 请求的URI过长,服务器无法处理。 状态码415 服务器无法处理请求附带的媒体格式。 状态码416 客户端的请求范围无效。...状态码502 充当网关或者代理的服务器,从远端服务器接受到了一个无效的请求。 状态码503 由于超载或者系统维护,服务器暂时的无法处理客户端的请求。
boolean checkError() 如果流未关闭,请刷新流并检查其错误状态。 protected void clearError() 清除此流的错误状态。...void reset() 将此流重新定位到最后在此输入流上调用 mark方法时的位置。 long skip(long n) 跳过并丢弃来自此输入流的 n字节的数据。...File(URI uri) 通过将给定的 file: URI转换为抽象路径名来创建新的 File实例。...URI toURI() 构造一个表示此抽象路径名的 file: URI。 URL toURL() 已过时。 此方法不会自动转义URL中非法的字符。...建议在新的代码转换的抽象路径到URL通过先转换成URI,经由toURI方法,然后经由转换URI为URL URI.toURL方法。
5** 服务器错误,服务器在处理请求的过程中发生了错误 状态码 状态码英文名称 中文描述 100 Continue 继续。...但返回的meta信息不在原始的服务器,而是一个副本 204 No Content 无内容。服务器成功处理,但未返回内容。...请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 302 Found 临时移动。与301类似。但资源只是临时被移动。...通过此代码,网站设计人员可设置”您所请求的资源无法找到”的个性页面 405 Method Not Allowed 客户端请求中的方法被禁止 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求...Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求 503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。
,请求包含语法错误或无法完成请求 5** 服务器错误,服务器在处理请求的过程中发生了错误 HTTP 含义 翻译 100 Continue 继续。...但返回的meta信息不在原始的服务器,而是一个副本 204 No Content 无内容。服务器成功处理,但未返回内容。...请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 302 Found 临时移动。与301类似。但资源只是临时被移动。...通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 405 Method Not Allowed 客户端请求中的方法被禁止 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求...Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。
概述 在 Java 中操作 HDFS, 主要涉及以下 Class: Configuration 该类的对象封转了客户端或者服务器的配置 FileSystem 该类的对象是一个文件系统对象,可以用该对象的一些方法来对文件进行操作..., 通过 FileSystem的静态方法 get 获得该对象 FileSystem fs = FileSystem.get(conf) get 方法从 conf 中的一个参数 fs.defaultFS的配置值判断具体是什么类型的文件系统...如果我们的代码中没有指定 fs.defaultFS, 并且工程 ClassPath下也没有给定相应的配置, conf 中的默认值就来自于 Hadoop 的Jar 包中的 core-default.xml...fileOutputStream = new FileOutputStream(new File("c:\\install.log")); IOUtils.copy(open,fileOutputStream...); IOUtils.closeQuietly(open); IOUtils.closeQuietly(fileOutputStream); fileSystem.close
但返回的meta信息不在原始的服务器,而是一个副本 204 No Content 无内容。服务器成功处理,但未返回内容。...请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 302 Found 临时移动。与301类似。但资源只是临时被移动。...通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 405 Method Not Allowed 客户端请求中的方法被禁止 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求...Media Type 服务器无法处理请求附带的媒体格式 416 Requested range not satisfiable 客户端请求的范围无效 417 Expectation Failed 服务器无法满足...Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。
4** 客户端错误,请求包含语法错误或无法完成请求 5** 服务器错误,服务器在处理请求的过程中发生了错误 HTTP状态码列表: HTTP状态码列表 状态码 状态码英文名称 中文描述 100 Continue...但返回的meta信息不在原始的服务器,而是一个副本 204 No Content 无内容。服务器成功处理,但未返回内容。...请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 302 Found 临时移动。与301类似。但资源只是临时被移动。...通过此代码,网 站设计人员可设置"您所请求的资源无法找到"的个性页面 405 Method Not Allowed 客户端请求中的方法被禁止 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求...Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。
领取专属 10元无门槛券
手把手带您无忧上云