1.android 如何读写文件
读文件:
1、通过File获取文件
2、打开输入流,读取文件
写文件:
1、创建文件
2、打开输出流,写入文件内容
示例:
读文件:
String content = ""; //文件内容字符串
//通过路径/sdcard/foo.txt打开文件
File file = new File("/sdcard/foo.txt");
try {
InputStream instream = new FileInputStream(file);//读取输入流
InputStreamReader inputreader = new InputStreamReader(instream);//设置流读取方式
BufferedReader buffreader = new BufferedReader(inputreader);
while (( line = buffreader.readLine()) != null) {
content += line + "\n";//读取的文件内容
}
}catch(Exception ex){
}写文件:
File file = new File("/sdcard/foo.txt");//
if(!file.exists())
file.createNewFile();//如果文件不存在,创建foo.txt
try {
OutputStream outstream = new FileOutputStream(file);//设置输出流
OutputStreamWriter out = new OutputStreamWriter(outstream);//设置内容输出方式
out.write("文字内容");//输出内容到文件中
out.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
2.Android 怎样在应用程序中向文件里写入数据
1. Android 怎样在应用程序中向文件里写入数据?在AndroidManifest.xml中添加,
注:resource和assets中的文件用户方面是只可以读取不能够进行写的操作的。 Content Provider作为程序之间唯一共享数据途径,用在这里不是很合适。
所以, 第一种方式,使用FileInputStream,FileOutputStreamdui类实现文件I/O操作,直接往手机中存储数据。 第二种方式,使用SQLite,通过SQLiteDatabase类中方法操作数据。
第三种方式,Preference用于存储简单数据类型的数据,一些设置信息的保存。个人认为用在这里最合适。
它利用键值对存储的。例: 存储:SharedPreferences.Editor editor =sp.edit(); editor.putString(KEY_TEXT,"yonghu"); editor.commit(); 获取 :sp =getPreferences(MODE_PRIVATE); String result =sp.getString(KEY_TEXT,null) 3. Android保存数据几种常用方法解析 它应用于手机中能够帮助我们实现许多需求。
比如今天为大家介绍的Android保存数据,就是其中一个比较重要的操作技巧。Android组件相关概念总结Android传值方法细讲Android横竖屏切换正确实现方式分享Android开发环境相关配置概览Android NDK具体作用讲解对于我们所熟悉的大部分软件都有一个比较典型的特点,应用现有的数据根据不同的需求来得到相应的结果。
例如,我们最常用的Officeword、Excel、PowerPoint等办公软件,它们都是帮助我们完成某种特定的需求,同时由其所产生的数据或者文档又可以被其它软件所读取和做进一步的优化等等,在这个层面上可以看成是这些软件通过相同的文件标准来共享数据。但是对于Android最大的不同点在于,其平台上的应用软件所存储的数据或者文件是私有,仅仅可以通过它自身才可以访问其所包含的数据资源。
那么基于这样的限制,该如何在Android平台上实现不同程序间的数据共享呢?答案非常简单 – 应用ContentProviders,这是建立在Android平台上用于定义统一的数据标准。Android提供了针对不同数据类型的ContentProviders来满足各种需要。
例如:Image、Audio、Video和通讯录信息类等。阅读下边的文档之前,最好先熟悉Content Providers的概念。
有了上边所提到Content Providers,接下来就要处理在共享文件过程中的存储环节了,这里有四种方法分别适用于不同情况的需求。它们都各自有相应的优缺点,所以当开发者决定选择应用哪种方法之前,先要考虑当前所操作的情况是否适合于所选择的方法。
Preferences Files Databases Network 接下来将依次介绍上诉四个Android保存数据方法:Preferences从其保存数据的结构来分析,这是一个相对较轻量级的存储数据的方法。类似于我们常用的ini文件保存软件初始化设置,同样在Android平台常用于存储较简单的参数设置。
例如,可以通过它保存上一次用户所作的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。通过Context.getSharedPreferences()方法来读写数值,这个方法通过设置name来使得同一个程序内的其它模块共享数据。
如果不需要与其它模块共享数据,可以使用Activity.getPreferences()方法保持数据私有。需要着重强调一点,无法直接在多个程序间共享Preferences数据(不包括使用Content Providers)。
通过一个实例来了解实际使用方法:import android.app.Activity; import android.content.SharedPreferences; public class Calc extends Activity { public static final String PREFS_NAME = "MyPrefsFile"; . . . . Override protected void onCreate(Bundle state){ super.onCreate(state); . . . . // Restore preferences SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean silent = settings.getBoolean("silentMode", false); setSilent(silent); } @Override protected void onStop(){ super.onStop(); // Save user preferences. We need an Editor object to // make changes. All objects are from android.context.Context SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("silentMode", mSilentMode); // Don't forget to commit your edits!!! editor.commit(); } } Files从这是第二种方法,可以在设备本身的存储设备或者外接的存储设备中创建用于保存数据的文件。同样在默认的状态下,文件是不能在不同的程序间共享。
写文件:调用Context.openFileOutput()方法根据指定的路径和文件名来创建文件,这个方法会返回一个FileOutputStream对象。读取文件:调用Context.openFileInput()方法通过制定的路径和文件名来返回一个标准的Java FileInputStream对象。
(注意:在其它程序中将无法应用相同的路径和文件名来操作文件)另外编译程序之前,在res/raw/tempFile中建立一个static文件,这样可以在程序中通过Resources.openRawResource (R.raw.myDataFile)。
3.Android开发之如何读写文件
【转】 首先介绍如何存储数据,显然,要将数据从应用中输出到文件中,必须得到一个输出流outPutStream,然后往输出流中写入数据,在这里Android自带了一个得到应用输出流的方法 FileOutputStream fos =context.openFileOutput(“yuchao.txt”,Context.MODE_PRIVATE); (1) 其中第一个属性为文件名,第二个属性为读写模式(有关读写模式的说明下面将详细阐述), 然后在文件输出流fos中便可以写入数据 Fos.write(“Hi,”I'm Chao Yu!”.getBytes()); 用完文件输出流之后记得关闭 fos.close(); 这样,在/data/data/packageName/file目录下就生成了一个文件名为yuchao.txt的文件,文件中的内容为” Hi,I'm Chao Yu!” 有关(1)中读写模式其实就是制定创建文件的权限以及在读写的时候的方式,Android中提供了以下几种读写模式 Context.MODE_PRIVATE = 0 该模式下创建的文件其他应用无权访问,并且本应用将覆盖原有的内容 Context.MODE_APPEND = 32768 该模式下创建的文件其他应用无权访问,并且本应用将在原有的内容后面追加内容 Context.MODE_WORLD_READABLE = 1 该模式下创建的文件其他应用有读的权限 Context.MODE_WORLD_WRITEABLE = 2 该模式下创建的文件其他应用有写的权限 如果需要将文件设置为外部应用可以读写,可将读写模式设置为Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE 一般情况下,各个应用维护的数据都在一个特定的文件夹中,即上面所提到的/data/data/packageName/file(存在于手机存储中),但手机内存毕竟有限,所以有些情况下,我们需要往SD卡中写入数据文件,这其实和普通的java web 应用步骤一样,都是先创建特针对特定目录特定文件的输出流,然后往输出流中写数据,这里要注意一个方法,就是获取SD卡根目录的方法,随着Android系统不断升级,SD卡的根目录随时都有可能改变,Android中得到SD卡根目录的方法是 File sdCardDir = Environment.getExternalStorageDirectory(); 然后就可以进行下面的步骤 File saveFile = new File(sdCardDir, “yuchao.txt”); FileOutputStream outStream = new FileOutputStream(saveFile); outStream.write("Hi,I'm ChaoYu".getBytes()); outStream.close(); 值得注意的是,在往SD卡中写数据的时候,健壮的代码必须考虑SD卡不存在或者写保护的情况,故在写入之前,先做判断 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ …… } 接着,我们来学习下我们的应用程序如何读取文件中的数据,其实就是写的逆向过程 若要读取应用程序默认维护的文件(即/data/data/packageName/file目录下的文件),首先得到文件输入流 FileInputStream istream = this.context.openFileInput(“yuchao.txt”); 然后在内存中开辟一段缓冲区 byte[] buffer = new byte[1024]; 然后创建一个字节数组输出流 ByteArrayOutputStream ostream = new ByteArrayOutputStream(); 读出来的数据首先放入缓冲区,满了之后再写到字符输出流中 while((len=istream.read(buffer))!=-1){ ostream.write(buffer, 0, len); } 最后关闭输入流和输出流 istream.close(); ostream.close(); 将得到的内容以字符串的形式返回便得到了文件中的内容了,这里的流操作较多,故以一张图片来说明,见图1 return new String(ostream.toByteArray()); 从SD卡中读取数据与上述两个步骤类似,故不再赘述,留给读者自己思考 如在开发过程中进行SD卡地读写,切忌忘了加入权限
4.android 怎样写资源文件
1.在代码中使用资源文件 在代码中访问资源文件,是通过R类中定义的资源文件类型和资源文件名称来访问的。 具体格式为: R.资源文件类型.资源文件名称 另外,除了访问用户自定义的资源文件,还可以访问系统中的资源文件。 访问系统中的资源文件的格式为: android.R. 资源文件类型.资源文件名称2.在其他资源文件中引用资源文件 经常会在布局文件中引用图片、颜色资源、字符串资源和尺寸资源。 在其他资源中引用资源的一般格式是: @[包名称:]资源类型/资源名称使用颜色资源 颜色值定义的开始时一个#号,后面是Alpha-RGB的格式。 例如: #RGB #ARGB #RRGGBB #AARRGGBB 引用资源格式: Java代码中:R.color.color_name XML文件中:@[package:]color/color_name 使用时在res\values\目录下,定义一个colors.xml文件,里面存放颜色名字和颜色值的键值对。 如:#f00#0000ff其他资源如字符串、尺寸都是类似的方法。使用字符串资源 创建字符串资源文件strings.xml.里面内容也是键值对 在Java代码中引用字符串资源R.string.string_name 可如下取得: String str = getString(R.string.string_name).toString(); 在xml文件中引用字符串资源:@[package:]string/string_name使用尺寸资源 尺寸资源被定义在res\values\dimens.xml文件中。 相对屏幕物理密度的抽象单位
sp和精度无关的像素和dp类似,与刻度无关的像素,主要处理字体大小 引用尺寸资源: 在Java代码中: R.dimen.dimen_name 在xml文件中:@[package:]dimen/dimen_name使用原始XML资源 XML文件定义在工程的res\xml\目录下,通过Resources.getXML()方法来访问。 获得原始XML文件的思路是,通过getResources().getXml()获得XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开始还是结尾、是某个标签的开始还是结尾,并通过一些获得属性的方法来遍历XML文件,从而访问XML文件的内容。使用drawables资源 drawable资源是一些图片或者颜色资源,主要用来绘制屏幕,通过Resources.getDrawable()方法获得。 drawable资源分为三类:Bitmap File(位图文件)、Color Drawable(颜色)、Nine-Patch Image(九片图片)。 Android中支持的位图文件有png、jpg和gif。 引用位图资源的格式: Java代码中:R.drawable.file_name XML文件中:@[package:]drawable/file_name使用布局(layout)资源 布局资源是Android中最常用的一种资源,将屏幕中组件的布局方式定义在一个XML文件中,类似于Web中的HTML页面。 布局文件位于res\layout\中,名称任意。Android通过LayoutInflater类将XML文件中的组件解析为可视化的视图组件。 在Activity中,调用Activity.setContentView()方法,将布局文件设置为Activity的界面,使用findViewById()方法来得到布局中的组件。
5.求问,android如何写到文件
今天刚写了这个工具类,贴给你,很简单的,就是用输出流写进缓冲字节数组,然后保存进文件,至于文件的格式就自己随便写了,自己去优化和扩展吧。
public class FileStoreTools {/** * * TODO:保存文件 根目录 Author:Andy.Liu Create Time:2012-7-10 上午08:54:14 TAG:@return * Return:String */ public static String getSDPath() { boolean hasSDCard = Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED); if (hasSDCard) { return Environment.getExternalStorageDirectory().toString(); } else return Environment.getDownloadCacheDirectory().toString(); }/** * * TODO:保存文件 */ public static void saveFile(String textString, String filePath,String fileName) { FileOutputStream fos = null; try { File file = new File(filePath); if (!file.exists()) file.mkdirs(); file = new File(filePath+fileName); fos = new FileOutputStream(file); fos.write(textString.getBytes()); fos.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (null != fos) fos.close(); } catch (IOException e) { e.printStackTrace(); } } }/** * * TODO:读取文件 Author:Andy.Liu Create Time:2012-7-10 上午08:48:40 TAG:@param * filePath TAG:@return Return:String */ public static String readFile(String filePath) { FileInputStream fis = null; byte[] mByte = new byte[512]; try { fis = new FileInputStream(new File(filePath)); fis.read(mByte); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (null != fis) fis.close(); } catch (IOException e) { e.printStackTrace(); } } return new String(mByte).toString(); }}。
6.android开发,如何写配置文件
如果需要修改xml文件可以使用SAX或DOM的方法读取需要修改的xml文件,然后利用相应的接口修改后保存即可,不过不推荐使用这种方法,原因为按照Android的设计理念在工程res目录下存放的应该都是不可变的单独资源。根据您的需求可以用这样的方法实现:1.在strings.xml中把可能会变更的值全部定义。2.在需要变更时在程序代码中重新进行设置,如setText等,这种方法属于常规方法,设置后立即生效不需要重新启动程序。如果不想使用这种方法而是想用配置文件的方法可以考虑使用sharedpreferences来保存/读取相应的配置,然后同样使用setText等方法将配置应用到程序中,sharedpreferences会将配置以xml的形式保存在/data/data/<package name>/shares_prefs目录下。
希望对你有帮助。
7.android 下怎么读写大文件
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.File;
import java.io.BufferedInputStream;
import java.io.InputStream;
public class ReadAndWriteBinaryFileExample3 {
public static void main(String[] args) throws IOException {
//find the file size
File fileHandle = new File("test.jpg");
long length = fileHandle.length();
try (
//Open the input and out files for the streams
InputStream fileInputStream = new BufferedInputStream(new FileInputStream("test.jpg"));
FileOutputStream fileOutputStream = new FileOutputStream("test_copy.jpg");
)
{
int data;
//Read data into buffer and then write to the output file
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1)
{
fileOutputStream.write(buffer, 0, bytesRead);
}
}//try-with-resource
}
}你是说假如有袋大米50斤 现在一x个成年人习可以直接挪动 这时叫一一个小孩 他可能一次挪不动 小孩可以拿个铲子 一小点慢慢过去 中间建个buffer 啊
转载请注明出处育才学习网 » android中怎么写文件