解决Android Studio 将String类型保存为.txt文件,按下button跳转到文件管理器(解决了保存txt文件到文件管理后,手机打开是乱码的问题)
不知道为什么保存文件后之前打开一直都OK,就突然打开看到变成乱码了,最后解决了
关键:outStream.write(finalContent.getBytes("gbk"));
write的时候设置一下:转换格式(UFT-8在android不能用,只能用gbk)!!!我之前试过utf-8,还是乱码,没什么用,就是gbk!
从项目里面抽取了这个把String保存为txt到本地的方法:
String sdCardDir =Environment.getExternalStorageDirectory().getAbsolutePath();
File saveFile = new File(sdCardDir, "aaaa.txt");//new FileOutputStream(file, true);true:不覆盖写入文件
FileOutputStream outStream = null;
try {
outStream = new FileOutputStream(saveFile);
outStream.write(finalContent.getBytes("gbk"));//UFT-8在android不能用,只能用gbk!!!不设置的话可能会变成乱码!!!
outStream.close();
outStream.flush();
isSave = true;
Toast.makeText(PusherEndActivity.this, "文件已经保存啦!赶快去查看吧!", Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
顺便贴一下 按一个button,然后跳转到文件管理器,打开txt的方法,我这里有个isSave布尔类型判断了一下是不是之前已经保存了文件
btn_open_txt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isSave){
String path = Environment.getExternalStorageDirectory().getPath();
File file = new File(path);
Intent intent1 = new Intent(Intent.ACTION_GET_CONTENT);
intent1.addCategory(Intent.CATEGORY_DEFAULT);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent1.setDataAndType(Uri.fromFile(file), "text/plain");
try {
startActivity(intent1);
finish();
// startActivity(Intent.createChooser(intent,"选择浏览工具"));
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
}else {
Toast.makeText(PusherEndActivity.this, "还没有保存文件哦!", Toast.LENGTH_SHORT).show();
}
}
});
感谢:https://blog.csdn.net/wsqfwqfsdge3wg/article/details/54614089 成功解决我的问题
解决Android Studio 将String类型保存为.txt文件,按下button跳转到文件管理器(解决了保存txt文件到文件管理后,手机打开是乱码的问题)的更多相关文章
- 我的Android进阶之旅------>解决Android Studio全局搜索搜不到结果的问题
1.问题描述 今天使用Android Studio时,想通过使用快捷键Ctrl+Shift+F来进行全局搜索指定字符串,如下图所示:想搜索字符串"码农偷懒了", 打开string. ...
- 解决 Android Studio 乱码问题
http://www.eoeandroid.com/thread-275485-1-1.html 很多同学都安装了Android Studio,但是发现中文是乱码,其实这个很好解决的.在IDE里点击F ...
- 解决Android Studio Gradle Build特别慢的问题
解决Android Studio Gradle Build 特别慢的问题 C:\Users\你的用户名\.gradle目录下新建一个文件名为gradle.properties的文件.内容为:org.g ...
- 解决Android Studio 3.0导入module依赖后unable to merge index
解决Android Studio 3.0导入module依赖后unable to merge index 项目需要使用im, 在项目里导入了腾讯im的几个module依赖, 项目无法编译, 报错una ...
- 解决Android Studio 3.x版本的安装时没有SDK,运行时出现SDK tools错误
好久没更新了,最近手机上的闹钟APP没一个好用的,所以想自己写个. 那Android开发环境搭起来,注意先装好jdk. 1.安装Android Studio google的Android开发网站已经有 ...
- 解决Android Studio Conflict with dependency 'com.android.support:support-annotations'报错
解决Android Studio Conflict with dependency 'com.android.support:support-annotations'报错 在Android Studi ...
- 解决android studio引用远程仓库下载慢(转)
解决android studio引用远程仓库下载慢(JCenter下载慢) 第一种方法 使用开源中国的maven库 阿里云的(速度飞快):http://maven.aliyun.com/nexus/c ...
- 解决Android Studio运行时报Error:java.lang.NullPointerException (no error message)错误
原文:解决Android Studio运行时报Error:java.lang.NullPointerException (no error message)错误 ...
- 解决 android studio 出现:"AndroidStudio:Could not GET 'https://dl.google.com Received status code 400 from server: Bad Request"问题
一.android studio 编译项目时出现"AndroidStudio:Could not GET 'https://dl.google.com Received status cod ...
随机推荐
- 安装 python pip Django
python 安装 1. 官网下载:以 window 为例,按提示下载,版本号根据实际需求选择: 2. 选择路径,安装完成后,命令行输入 python 检测是否安装成功,下图为安装成功显示:quit( ...
- 【easy】746. Min Cost Climbing Stairs 动态规划
On a staircase, the i-th step has some non-negative cost cost[i]assigned (0 indexed). Once you pay t ...
- 【easy】Number of Segments in a String 字符串中的分段数量
以空格为分隔符,判断一个string可以被分成几部分. 注意几种情况:(1)全都是空格 (2)空字符串(3)结尾有空格 思路: 只要统计出单词的数量即可.那么我们的做法是遍历字符串,遇到空格直接跳过, ...
- 无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer”。请确保使用限定程序集的名称且该程序集对运行的应用程序可用。有关详细信息,请参阅 http://go.m
Windows服务中程序发布之后会如下错误: 无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“Syste ...
- python 视频转成代码视频
# -*- coding:utf-8 -*- # coding:utf-8 import os, cv2, subprocess, shutil from cv2 import VideoWriter ...
- 源码解析Django CBV的本质
Django CBV模式的源码解析 通常来说,http请求的本质就是基于Socket Django的视图函数,可以基于FBV模式,也可以基于CBV模式. 基于FBV的模式就是在Django的路由映射表 ...
- Hadoop第一式:配置Linux环境之免密配置及SSH原理
一.配置SSH免密登录 进入/.ssh目录,执行密钥生成指令 ssh-keygen -t rsa (rsa为默认加密格式) 然后会出现四个提示,让你选择密钥保存路径.指纹.拍照啥的,不用管它直接回车过 ...
- 公设基础Generic
1# 与泛型相关的一些术语 1.类型参数(type parameter) : EX: List<E> 这里的E就属于List接口的单个类型参数E 2.参数化的类型(parameterize ...
- 解决ODBC连接Oracle数据库报Unable to connect SQLState=08004问题
今天用ODBC连接Oracle数据库时,报了这么一个错“Unable to connect SQLState=08004 Oracle ODBC Ora-12154”,上网查了好久都说PowerDes ...
- golang 读书笔记
介绍 Go语言是一种让代码分享更容易的编程语言.Go语言自带一些工具,让使用别人写的包更容易,并且分享自己写的包更容易. Go语言对并发的支持是这门语言最重要的特性之一.goroutine很像线程,但 ...