fileinputstream获取文件流,outputstream输出文件流。关键一点是,记得添加权限,举SD卡读写权限。 些目录是root权限等等。
成都创新互联公司主营温县网站建设的网络公司,主营网站建设方案,成都app软件开发,温县h5重庆小程序开发搭建,温县网站营销推广欢迎温县等地区企业咨询
通过输入输出流解决此问题,具体的可以查看JDK的API,实在不会的话,百度一下应该都有一堆这方面的代码。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class Copy {
public static void main(String[] args) {
byte[] b = new byte[10000];//建立一个byte数组用来存放读取内容
File file1 = new File(
"C:\\Documents and Settings\\Administrator\\桌面\\21个小故事.txt");
//创建要被拷贝文件的对象
File file2 = new File("C:\\Documents and Settings\\Administrator\\桌面\\copy.txt");
//创建拷贝文件的对象
if (file1.exists()) {//判断是否有这个被拷贝文件,如果存在则执行一下语句
try {
FileInputStream fis = new FileInputStream(file1);//创建文件输入流
fis.read(b);//读取被拷贝文件的内容并存入数组b中
fis.close();//关闭流
if(!file2.exists()){//判断拷贝文件是否存在,不存在则执行以下语句
file2.createNewFile();//创建拷贝文件
FileOutputStream fos = new FileOutputStream(file2);//创建输出流
fos.write(b);//向拷贝文件中写入数据
fos.close();//关闭
}else{//如果存在这个拷贝文件,则 不用创建新文件,直接写入数据
FileOutputStream fos = new FileOutputStream(file2);
fos.write(b);
fos.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
复制粘贴实际上是文件的流读取和写入可以通过如下方法实现:
读写是两个不同的分支,通常都是分开单独使用的。
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
1.
fw = new FileWriter (dest + namex);
fr = new FileReader (dir + namex);
while (( b = fr.read () ) != -1)
{
fw.write (b);
}
fw.flush ();
2. java调用批处理命令