import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class FileUtil
{
public static byte[] loadFileData(String fileName) throws IOException
{
File file=new File(fileName);
byte[] b=new byte[(int)file.length()];
if(file.exists())
{
FileInputStream input=new FileInputStream(file);
int temp=0;
for(int i=0;i<b.length;i++)
{
b[i]=(byte)input.read();
}
input.close();
}
else
{
System.out.println("要复制的文件不存在");
}
return b;
}
public static void saveDataToFile(String fileName, byte[] data) throws IOException
{
File file=new File(fileName);
if(file.getParent()==null)
{
writeFile(new FileOutputStream(new File(fileName+File.separator+"输入的是根目录.txt")),data);
}
if(!file.exists())
{
if(file.getName().indexOf(".")==-1)
{
file.mkdirs();
writeFile(new FileOutputStream(new File(fileName+File.separator+"输入的是目录.txt")),data);
}
else
{
file.getParentFile().mkdirs();
writeFile(new FileOutputStream(file),data);
}
}
else
{
System.out.println("文件存在了啊!");//当文件存在的时候为什么还覆盖文件呢?都跳到这了,为什么文件还会被重新写?
}
}
public static void main(String[] args) throws Exception
{
saveDataToFile("e:\\",loadFileData("C:\\1.txt"));
}
public static void writeFile(OutputStream output,byte[] data) throws IOException
{
for(int i=0;i<data.length;i++)
{
output.write(data[i]);
}
output.close();
}
}
这句调用有问题吧。
传入的"e:\\" 存在,执行 else 分支