JDK文件API
1. FileOutputStream 文件输出流
(1)public void write(byte b[]) throws IOException;
将传入的字节流b通过文件输出流写入文件。如果文件不存在,会自动创建文件。但是如果文件所在的文件夹不存在,会抛出异常,找不到目标文件,因此这种情况下记得要先创建文件夹,再执行文件写操作。
2. FileInputStream 文件输入流
(1)public int available() throws IOException
可以直接获取到文件中能够读出的字节数。
(2)public int read() throws IOException
每调用一次可以读取文件中的下一个字节。如果返回-1,则代表文件中所有的内容都被读取完了。
3. File 文件
(1)public File(String pathname)
File的构造方法。传入一个文件或文件夹的路径。
(2)public boolean mkdir()
创建文件夹。当创建File对象时传入了一个不存在的文件夹路径时,需要通过该方法先创建文件夹,否则程序可能会出现找不到目标文件的报错。
(3)public static File createTempFile(String prefix, String suffix, File directory) throws IOException
该方法用于创建文件。prefix用于生成要创建文件的名字,会在prefix后面再追加一串数字,追加后的字符串作为文件的名字。由于该方法会在prefix后面追加一串数字作为文件名字,所以就算以相同的输入参数重复地调用该方法,每次调用也都会创建出新的文件;
suffix为要创建文件的名称后缀,该方法会将suffix直接拼接在文件名字后面,这个参数可以用于设置文件扩展名,例如:如果suffix参数传“.png”,就会生成一个以png为扩展名的文件;
directory为要创建的文件所在的文件夹。创建文件之前需要先确保directory文件夹存在,如果不存在,需要先创建directory文件夹,再调用该方法,否则会出现找不到目标文件的异常。directory也可以传null,如果传null,会将创建的文件放在一个默认的路径中,例如:对于Android系统,会将创建的文件默认放在“/data/data/包名/cache”路径下。
Android SDK文件API
1. MimeTypeMap 一个用于转换文件的MIME类型与扩展名的工具类
(1)public static MimeTypeMap getSingleton();
MimeTypeMap是一个单例类,通过该方法可以获取该类的实例对象。
(2)public static String getFileExtensionFromUrl(String url);
根据传入的文件名或文件路径返回文件扩展名,返回的字符串不包含点,例如:调用该方法时传入“test.png”,则返回字符串“png”。如果解析不出扩展名,则返回空字符串“”。
(3)public String getMimeTypeFromExtension(String extension);
根据传入的扩展名获取MIME类型,传入的扩展名不能包含点,如果解析不出来,会返回null。例如:如果传入“.png”,就没有办法解析出来MIME类型,这种情况下就会返回null。只有传入“png”,才能解析出MIME类型为“image/png”。
内置存储区域
1. 访问应用的内置存储区域时无需申请授权。
2. 内置存储区域按照应用的包名划分,每个应用都有一块独立的内置存储区域,它的路径为“/data/data/包名/”,其中包名为build.gradle文件中声明的applicationId属性值。
3. 通过Context类提供的接口可以获取内置存储区域的文件信息。
(1). public File getFilesDir();
获取文件夹“/data/data/包名/files”
(2). public File getCacheDir();
获取文件夹“/data/data/包名/cache”
(3). public File getDir(String name, int mode);
将字符串“app_”与name拼接在一起作为文件夹名字,获取文件夹“/data/data/包名/文件夹名”。如果文件夹不存在,会先创建文件夹,再获取File对象。
mode代表文件的创建模式(File creation mode),例如:MODE_PRIVATE、MODE_APPEND、......。MODE_PRIVATE代表文件只能被应用本身访问,这种模式下对文件进行写操作,写入的数据会覆盖文件原来的内容;MODE_APPEND模式下对文件进行写操作,写入的数据会追加在文件中现有的内容的后面。
(4). public FileInputStream openFileInput(String name) throws FileNotFoundException
public FileOutputStream openFileOutput(String name, int mode) throws FileNotFoundException;
返回一个文件IO流,用于读写“/data/data/包名/files”路径下名字为name的文件。需要注意,文件的名字name中不能包含路径分割符,也就是说该方法只能用于读写“/data/data/包名/files”文件夹中的文件,不能用于读写它的子文件夹中的文件。
(未完成)