我要把D盘的文件“aa.txt”复制到E盘上,求代码

时间:2022-09-15 00:18:54
代码会使用到输入流和输出流
最好在这2个地方注释下,这个我还不太明白,谢谢了!

16 个解决方案

#1


File f=new File("d:\\aa.txt"); 
f.renameTo("e:\\aa.txt");//移动 
f.delete();//删除 

#2


我靠,这么简单!能说下file函数和renameto函数吗?

#3


输入流和输出流呢?

#4


不一定非得用流操作,方法多了。
org.apache.commons.io.FileUtils.copyFileToDirectory("d:\\aa.txt", "e:\\", true);这一句就行了

#5


你说的对,但是我刚学的是用流的代码,老师也用流的代码复制了文件,我没掌握好流的方法,以后不会怎么办?

#6


class Test {
public static void main(String args[]) {
FileInputStream fis = null;
FileOutputStream fos = null;
byte[] buffer = new byte[100];
int temp = 0;
try {
fis = new FileInputStream("D:\\aa.txt");
fos = new FileOutputStream("E:\\aa.txt");
while (true) {
temp = fis.read(buffer, 0, buffer.length);
if (temp == -1) {
break;
}
fos.write(buffer, 0, temp);
}
} catch (Exception e) {
System.out.println(e);
} finally {
try {
fis.close();
fos.close();
} catch (Exception e2) {
System.out.println(e2);
}
}

}
}

#7


 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class CopyFile {
public static void main(String[] args) throws Exception{
//输入流
File file = new File("d:\\aa.txt");
FileInputStream fs = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fs);
BufferedReader br = new BufferedReader(isr);
//输出流
File file_copy  = new File("e:\\aa.txt");
FileOutputStream fos = new FileOutputStream(file_copy);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);

String str = null;
//读写aa.txt的内容
while((str = br.readLine())!=null){
bw.write(str + "\n");
}

bw.flush();
bw.close();
}
}

#8


不错 新手适用

#9




引用 6 楼 fangmingshijie 的回复:
Java code?1234567891011121314151617181920212223242526272829class Test {    public static void main(String args[]) {        FileInputStream fis = null;        FileOutputStream fos = null; ……


 temp = fis.read(buffer, 0, buffer.length);这句我不理解,求解释

#10


lz推荐你看一下原码!

#11


temp = fis.read(buffer, 0, buffer.length);这句我不理解,求解释 
从源文件中将最多  buffer.length个字节的数据读入一个 byte 数组中,并用一个int型的变量保存下来,以便用于在目标文件中写入这么多数据。
fos.write(buffer, 0, temp); 

#12


既然LZ要操作的是文本文件,还是用Reader Writer吧

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CopyFile {
public static void main(String[] args)
{
BufferedReader bufr = null;
BufferedWriter bufw = null;
File file = new File("D:\\aa.txt");

try 
{
if(!file.exists())
throw new FileNotFoundException("文件不存在");

bufr = new BufferedReader(new FileReader(file));

bufw = new BufferedWriter(new FileWriter("D:\\aa_copy.txt"));

String line = null;

while((line=bufr.readLine())!=null)
{
bufw.write(line);
bufw.newLine();
bufw.flush();
}

catch (IOException e) 
{
System.out.println(e.toString());
}
finally
{
try
{
if(bufr!=null)
bufr.close();

catch (IOException e2) 
{
throw new RuntimeException("文件读取流关闭失败");
}
try 
{
if(bufw!=null)
bufw.close();

catch (IOException e3) 
{
throw new RuntimeException("文件写入流关闭失败");
}
}
}
}

#13


引用 11 楼 xiaobangsky 的回复:
temp = fis.read(buffer, 0, buffer.length);这句我不理解,求解释 
从源文件中将最多  buffer.length个字节的数据读入一个 byte 数组中,并用一个int型的变量保存下来,以便用于在目标文件中写入这么多数据。
fos.write(buffer, 0, temp);



这句话的意思是,读buffer这个缓冲区,从哪开始读啊?从0开始读,把所以的都读出来

#14


lz去下载个javase6.0_cn的中文api,学会看api

#15


org.apache.commons.io.FileUtils.copyFileToDirectory("d:\\aa.txt", "e:\\", true);这一句就行了 

#16


org.apache.commons.io.FileUtils.copyFileToDirectory("d:\\aa.txt", "e:\\", true);这一句就行了 

#1


File f=new File("d:\\aa.txt"); 
f.renameTo("e:\\aa.txt");//移动 
f.delete();//删除 

#2


我靠,这么简单!能说下file函数和renameto函数吗?

#3


输入流和输出流呢?

#4


不一定非得用流操作,方法多了。
org.apache.commons.io.FileUtils.copyFileToDirectory("d:\\aa.txt", "e:\\", true);这一句就行了

#5


你说的对,但是我刚学的是用流的代码,老师也用流的代码复制了文件,我没掌握好流的方法,以后不会怎么办?

#6


class Test {
public static void main(String args[]) {
FileInputStream fis = null;
FileOutputStream fos = null;
byte[] buffer = new byte[100];
int temp = 0;
try {
fis = new FileInputStream("D:\\aa.txt");
fos = new FileOutputStream("E:\\aa.txt");
while (true) {
temp = fis.read(buffer, 0, buffer.length);
if (temp == -1) {
break;
}
fos.write(buffer, 0, temp);
}
} catch (Exception e) {
System.out.println(e);
} finally {
try {
fis.close();
fos.close();
} catch (Exception e2) {
System.out.println(e2);
}
}

}
}

#7


 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class CopyFile {
public static void main(String[] args) throws Exception{
//输入流
File file = new File("d:\\aa.txt");
FileInputStream fs = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fs);
BufferedReader br = new BufferedReader(isr);
//输出流
File file_copy  = new File("e:\\aa.txt");
FileOutputStream fos = new FileOutputStream(file_copy);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);

String str = null;
//读写aa.txt的内容
while((str = br.readLine())!=null){
bw.write(str + "\n");
}

bw.flush();
bw.close();
}
}

#8


不错 新手适用

#9




引用 6 楼 fangmingshijie 的回复:
Java code?1234567891011121314151617181920212223242526272829class Test {    public static void main(String args[]) {        FileInputStream fis = null;        FileOutputStream fos = null; ……


 temp = fis.read(buffer, 0, buffer.length);这句我不理解,求解释

#10


lz推荐你看一下原码!

#11


temp = fis.read(buffer, 0, buffer.length);这句我不理解,求解释 
从源文件中将最多  buffer.length个字节的数据读入一个 byte 数组中,并用一个int型的变量保存下来,以便用于在目标文件中写入这么多数据。
fos.write(buffer, 0, temp); 

#12


既然LZ要操作的是文本文件,还是用Reader Writer吧

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CopyFile {
public static void main(String[] args)
{
BufferedReader bufr = null;
BufferedWriter bufw = null;
File file = new File("D:\\aa.txt");

try 
{
if(!file.exists())
throw new FileNotFoundException("文件不存在");

bufr = new BufferedReader(new FileReader(file));

bufw = new BufferedWriter(new FileWriter("D:\\aa_copy.txt"));

String line = null;

while((line=bufr.readLine())!=null)
{
bufw.write(line);
bufw.newLine();
bufw.flush();
}

catch (IOException e) 
{
System.out.println(e.toString());
}
finally
{
try
{
if(bufr!=null)
bufr.close();

catch (IOException e2) 
{
throw new RuntimeException("文件读取流关闭失败");
}
try 
{
if(bufw!=null)
bufw.close();

catch (IOException e3) 
{
throw new RuntimeException("文件写入流关闭失败");
}
}
}
}

#13


引用 11 楼 xiaobangsky 的回复:
temp = fis.read(buffer, 0, buffer.length);这句我不理解,求解释 
从源文件中将最多  buffer.length个字节的数据读入一个 byte 数组中,并用一个int型的变量保存下来,以便用于在目标文件中写入这么多数据。
fos.write(buffer, 0, temp);



这句话的意思是,读buffer这个缓冲区,从哪开始读啊?从0开始读,把所以的都读出来

#14


lz去下载个javase6.0_cn的中文api,学会看api

#15


org.apache.commons.io.FileUtils.copyFileToDirectory("d:\\aa.txt", "e:\\", true);这一句就行了 

#16


org.apache.commons.io.FileUtils.copyFileToDirectory("d:\\aa.txt", "e:\\", true);这一句就行了