首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在安卓中使用openFileOutput使用FileOutputStream时阻止文件自身重写

在安卓中使用openFileOutput使用FileOutputStream时阻止文件自身重写,可以通过以下步骤实现:

  1. 首先,使用openFileOutput方法创建一个文件输出流对象。该方法接受两个参数:文件名和文件操作模式。文件名是要创建的文件的名称,文件操作模式可以是私有模式(MODE_PRIVATE)或追加模式(MODE_APPEND)等。
  2. 接下来,使用FileOutputStream的构造函数将文件输出流对象实例化。传入openFileOutput方法返回的文件输出流对象和文件操作模式作为参数。
  3. 如果你希望阻止文件自身重写,可以在创建文件输出流对象之前先检查文件是否存在。可以使用File类的exists()方法来检查文件是否存在。如果文件存在,则可以选择不执行文件输出流的创建操作,或者删除已存在的文件。

以下是一个示例代码:

代码语言:txt
复制
String fileName = "example.txt";
int mode = Context.MODE_PRIVATE;

// 检查文件是否存在
File file = new File(getFilesDir(), fileName);
if (file.exists()) {
    // 文件存在,可以选择删除文件或者不执行文件输出流的创建操作
    // file.delete(); // 删除文件
} else {
    try {
        // 创建文件输出流对象
        FileOutputStream fos = openFileOutput(fileName, mode);
        // 进行文件操作
        // ...
        fos.close(); // 关闭文件输出流
    } catch (IOException e) {
        e.printStackTrace();
    }
}

在上述示例中,我们首先检查文件是否存在,如果存在可以选择删除文件或者不执行文件输出流的创建操作。如果文件不存在,则创建文件输出流对象并进行文件操作。最后,记得关闭文件输出流。

请注意,这里的示例代码仅演示了如何在安卓中使用openFileOutput使用FileOutputStream时阻止文件自身重写的一种方式。具体的实现方式可能因具体需求而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android到Windows 8:使用文件

平台到Win8:文件的处理 本文将介绍如何编写Win8Windows Store里的应用代码,用于保存图像、文档等文件。...在你想把文件存储到外部存储设备,需要使用DeviceInformation类和StorageDevice类。这些内容以后会细讲,先展示一下刚才这些内容如何用代码实现。...在应用,本地目录代码需要这么写: File tempFile;tempFile = File.createTempFile("TempFile.txt", null, context.getCacheDir...;FileOutputStream outputStream;​outputStream = openFileOutput(filename, Context.MODE_PRIVATE);outputStream.write...在应用,同样的功能实现需要先在应用manifest请求WRITE_EXTERNAL_STORAGE权限,如下所示: <uses-permission android:name

1.5K80
  • Android Device Monitor--File Explorer 的datadata..无法访问的问题

    在学习第一种数据持久化方法文件存储的时候,我们通过 Context 类openFileOutput() 方法创建一个指定了保存路径的 FileOutputStream 对象 out,然后用这个 out...打开 Android Device Monitor openFileOutput() 方法生成的文件存放在一个默认路径,即 /data/data/(package name)/files 下, 于是,下一步当然是打开这个路径了...下载之后,选中压缩包的如图的四个文件,覆盖在自己本地的platf-tools目录上对应的文件,在此运行,就没毛病了。。。 ? ? 没毛病了,感动。。。...无须前面各种繁琐的操作了): 可见CSDN某参考文档 一开始采用的Android Studio模拟器的版本是根据所学习的教程推荐的Android 7.0。...所以只需要重新安装一个非Android 7.0版本的模拟器(可以通过genymotion平台,使用版本在Android6.0以下的手机),Android 6.0,或者连接一台获得了root权限的设备

    3.1K20

    详解Android数据存储技术

    内存存储:使用了FileInputStream类的openFileInput()方法,用于读取数据;使用FileOutputStreamopenFileOutput()方法,用于写入数据。...() 一,内部存储的写入文件步骤 第一, 获取文件输出流对象 FileOutputStream 第二, 使用FileOutputStream类的openFileOutput(String name...,清空缓存 第五, close()方法用于关闭FileOutputStream 二,内部存储的读取文件步骤 第一, 获取文件输入流对象 FileInputStream 第二, 使用FileInputStream...主要代码步骤: 重要步骤 读取数据 读取数据 读取文件内容的使用代码: 读取文件 读取文件 综上,在Android读取与写入文件的方法,和Java实现I/O的程序是一样的,提供了openFileInput...外部存储的文件全局都是可以读的,在程序使用Environment类的getExternalStorageDirectory方法,来读取外部文件

    1.4K20

    从 Android 到 Windows 8:文件操作

    本文将带你了解如何编写代码,使得 Windows8 商店应用可以保存文件(例如照片和文档)。你可以将这些文件存储在应用数据文件夹,或将它们保存到外部存储介质( USB 驱动器)。...若要将文件存储在外部存储介质,可以使用 DeviceInformation 和StorageDevice 类。这些内容将在后文有更详细的介绍。 接下来介绍实际代码。...将文件保存到应用数据文件夹 在 Windows 商店应用,如果要保存名为 hello.txt 的文件到 local 目录下,你可以使用如下代码: var file = await ApplicationData.Current.LocalFolder.CreateFileAsync...tempFile = await ApplicationData.Current.TemporaryFolder.CreateFileAsync("TempFile.txt"); Android 提示 在应用...; FileOutputStream outputStream; outputStream = openFileOutput(filename, Context.MODE_PRIVATE); outputStream.write

    1.9K80

    应用安全指南 4.6.1 处理文件 示例代码

    应用安全指南 4.6.1 处理文件 示例代码 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC...,只能在同一个应用读取/写入,并且这是使用文件的一种非常安全的方式。...原则上,无论存储在文件的信息是否是公开的,尽可能使用私有文件,当与其他应用交换必要的信息,应该使用另一个 Android 系统(内容供应器,服务)来完成。...4.6.1.4 使用外部存储器(公共读写)文件文件存储在 SD 卡等外部存储器,就是这种情况。...当存储比较庞大的信息(放置从 Web 下载的文件)或者将信息带出到外部(备份等),应该使用它。 对于未指定的大量应用,“外部存储器文件(公共读写)”与“公共读写文件“有相同特性。

    33530

    文件

    try {                     FileOutputStream outStream =main.this.openFileOutput("itcast.txt", Context.MODE_PRIVATE...,只能被应用本身访问,在 该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件。...可以使用Context.MODE_APPEND Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文 件。...如果希望文件被其他应用读和写,可以传入: openFileOutput("itcast.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE...); android有一套自己的安全模型,当应用程序(.apk)在安装系统就会分配给他一个userid,当该应 用要去访问其他资源比如文件的时候,就需要userid匹配。

    2.4K50

    Android数据存储,知多少?

    【前言】 小编在地图项目,产品应用有各种数据,:离线地图数据、离线语音数据、模板包、地图样式文件、收藏及历史数据等等。...不难看出,SharedPreferences数据文件的根元素是,该元素里每个子元素代表一个key-value对,当value是字符串类型使用子元素。...文件存储数据 文件存储是Android中最基本的一种存储方式,和Java实现I/O的方式,由Context类提供openFileInput()和openFileOutput()方法打开。...目录下写数据:FileOutputStream openFileOutput(String filename, int mode),打开应用程序的数据文件夹下的filename文件对应的输出流; mode...外部存储,使用Enviroment类的getExternalStorageDirectory()方法对外部存储上的文件进行读写。 示例 ? 3.

    98220

    Android手机App安全漏洞整理(小结)

    因此需要对代码进行代码混淆。 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。...将代码的各种元素,变量,函数,类的名字改写成无意义的名字。比如改写成无意义的单个或多个字母,a,Ac,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。...1.2 Dex保护漏洞 Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,相当于的.exe文件,Dex为Android应用的核心,保护不当容易被反编译,...(2)Content Provider的SQL注入漏洞 和Web漏洞类似,APP也要使用数据库,那就也有可能存在SQL注入漏洞。...(2)File任意读写漏洞 如果开发者使用openFileOutput(String name,int mode)方法创建内部文件使用MODE_WORLD_READABLE或 MODE_WORLD_WRITEABLE

    2.6K30

    Uniapp、Html5plus、Native.js开发记录

    Native.js 的过程,也需要和Java一样先声明引入一个类,才能使用这个类,在Native.js中使用importClass方法去引入一个类 /* Android平台导入Intent类 */...对于重写暂时是没有办法实现(毕竟java本身不是动态语言),可以使用Interface来解决部分问题。...Android为了确保应用程序关键代码的正确执行,提供了Wake Lock的API,使得应用程序有权限通过代码阻止AP进入休眠状态。...但如果不领会Android设计者的意图而滥用Wake Lock API,为了自身程序在后台的正常工作而长时间阻止AP进入休眠状态,就会成为待机电池杀手。...person:发件人,如果发件人在通讯录则为具体姓名,陌生人为null date:日期,long型,1256539465022,可以对日期显示格式进行设置,这里在用sqlite语句进行筛选date

    3K50

    Android存储数据的三种方式

    今天来给大家讲一下Android如何存储数据。我编写Android使用的是Java语言,所以今天讲的也是Java版的数据存储。在Android,数据存储主要有三种,文件存储、Sp、SQLite。...Context的方法openFileOutput(),获取一个FileOutputStream对象 fos = openFileOutput("data", Context.MODE_PRIVATE...利用ContextopenFileOutput(String name, int mode)方法,传入文件名和操作模式。获取一个FileOutputStream对象,然后在存储文件。...2.1、Sp的创建 sp的创建方式有三种,第一种,直接使用Context的getSharedPreferences()方法,传入文件名和操作模式: private void initView(){...获取的时候直接用存储文件名创建一个Sp对象,就可以读取数据: private void initData(){ //创建一个文件名为data的sp对象 SharedPreferences

    1.2K20

    Facebook Home评测:用了感觉有点“囧”

    FacebookHome推出后,因为众所周知的原因国内暂时无法使用它。但这也没有阻止业内人士对其的观察和点评。有人说不得了,它成为了第N种入口。...设置中有一个“数据使用”的设置。高、、低三个选项。至今为止,对三个选项代表的意思仍然觉得深深的迷茫。...在Messeger以及WhatsApp、微信都还不能完全取代语音通话(有人说后期的的Messeger会支持语音通话,那又如何?)传统的语音通话仍然是主流。...除了锁屏随时可以切换回系统主屏外,FB作为一个轻量级的“应用”,控制力及其匮乏。使用过程多次重复出现系统自带的锁屏界面。...如何在任何设备上,在墙内使用FB HOME?笔者已经为各位整理好教程:如何在内地任何设备上使用FacebookHome。欢迎猛戳。

    1.3K40

    Android菜单的定义及ActionBar的实现

    同样地,子菜单也可以通过add()方法为自身添加菜单项。 add()方法的四个参数: 第一个参数是groupId,可以用来控制各个菜单项是否在同一组。...下面介绍如何在XML定义选项菜单: 要在XML文件定义菜单,首先需要在资源文件创建一个名为menu的文件夹; 然后再在其中创建xml文件: ?...xml文件的根节点必须是menu; 其中每个item标签定义一个菜单项,并可以通过在<item 再定义<menu 的方式创建子菜单。 <?...是从3.0开始被介绍使用的。系统默认使用ActionBar作为工具栏。ActionBar的item可以显示为两种——按钮和溢出菜单。 也就是说,的菜单已经不再是单纯的菜单。...全部浓缩在溢出菜单。 “withText”也就是显示按钮跟随文字。但文字一般不显示出来,用户如果长按按钮,则会显示其对应的title。 ” always”与”never”相对应。

    1.2K20
    领券