用FileInputStream和FileOutPutStream读写文件
用FileInputStream和FileOutPutStream读写文件
package io;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class TestIO {
public static void main(String[] args) throws IOException {
//
}
}
结果:
打印结果:How are you?Fine.Thanks!
运行结果:程序执行后,在该工程下生成了demo1.txt,demo2.txt,demo1_copy.txt三个文件其中的内容分别为:“How are you?Fine.Thanks! ”,“How are you?
总结:
1、FileInputStream是InputStream类(字节流输入)的子类,以字节流方式读取文件;FileInputStream的构造函数参数可以是File文件,也可以是字符串,但实际上使用File文件会更加规范。
2、类似的,FileOutputStream是OutputStream类的子类,以字节流方式写入文件。
3、与File类不同(File类关注的是文件在磁盘上的存储),FileInputStream,FileOutputStream关注是的文件的内容
在使用fileoutputstream时经常出现FileNotFoundException问题,即便是同一个程序(可行)改了一下包名再重新编译,就会无缘无故的抛出FileNotFoundException问题。这曾经困扰我好几个月,前几次都稀里糊涂的解决了,今天又出问题了,便下定决心解决了它。
首先,要明确FileOutputStream并不会帮你创建不存在的路径,所以要先创建路径,再创建文件。
- <span> </span>File cacheDir = new File("data/data/com.kavinapps.androidk.pcexam/databases/");//设置目录参数
- cacheDir.mkdirs();//新建目录
- Log.i("copySd2phone","新建data/data目录成功");
- String filename;
- //获得文件名的长度
- filename = "carnum.db";
- Log.i("createNewFile","filename= "+filename);
- //文件名
- cacheFile = new File(cacheDir,filename);//设置参数
- cacheFile.createNewFile();//生成文件
- Log.i("createNewFile","生成文件成功"+cacheFile.getName());
- output = new FileOutputStream( "data/data/com.kavinapps.androidk.pcexam/databases/carnum.db" );