我想直接创建一个文件,我文件存在则覆盖,不存在则创建,有没有效率高的语句,先谢了 用FileOutputStream就行了。不过你要保证创建的文件之前文件夹是存在的。可以先用File方法检查一下文件夹是否存在,不存在则用mkdir();创建文件夹 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 File f=new File("C:\xxx.txt");if(f.exists()) f.delete();f.createNewFile(); 一些关于文件操作的!可以参考:import java.io.*;public class FileOperate { public FileOperate() { } /** * 新建目录 * * @param folderPath String 如 c:/moumoulr * * @return boolean */ public void newFolder( String folderPath ) { try { String filePath = folderPath; filePath = filePath.toString(); java.io.File myFilePath = new java.io.File( filePath ); if ( ! myFilePath.exists() ) { myFilePath.mkdir(); } } catch ( Exception e ) { System.out.println( "新建目录操作出错" ); e.printStackTrace(); } } /** * 新建文件 * * @param filePathAndName String 文件路径及名称 如c:/moumoulrc.txt * @param fileContent String 文件内容 * @return boolean */ public void newFile( String filePathAndName, String fileContent ) { try { String filePath = filePathAndName; filePath = filePath.toString(); File myFilePath = new File( filePath ); if ( ! myFilePath.exists() ) { myFilePath.createNewFile(); } FileWriter resultFile = new FileWriter( myFilePath ); PrintWriter myFile = new PrintWriter( resultFile ); String strContent = fileContent; myFile.println( strContent ); resultFile.close(); } catch ( Exception e ) { System.out.println( "新建目录操作出错" ); e.printStackTrace(); } } /** * 删除文件 * * @param filePathAndName String 文件路径及名称 如c:/moumoulrc.txt * @param fileContent String * @return boolean */ public void delFile( String filePathAndName ) { try { String filePath = filePathAndName; filePath = filePath.toString(); java.io.File myDelFile = new java.io.File( filePath ); myDelFile.delete(); } catch ( Exception e ) { System.out.println( "删除文件操作出错" ); e.printStackTrace(); } } /** * 删除文件夹 * * @param filePathAndName String 文件夹路径及名称 如c:/moumoulrc * @param fileContent String * @return boolean */ public void delFolder( String folderPath ) { try { delAllFile( folderPath ); //删除完里面所有内容 String filePath = folderPath; filePath = filePath.toString(); java.io.File myFilePath = new java.io.File( filePath ); myFilePath.delete(); //删除空文件夹 } catch ( Exception e ) { System.out.println( "删除文件夹操作出错" ); e.printStackTrace(); } } /** * 删除文件夹里面的所有文件 * * @param path String 文件夹路径 如 c:/moumoulrc */ public void delAllFile( String path ) { File file = new File( path ); if ( ! file.exists() ) { return; } if ( ! file.isDirectory() ) { return; } String[] tempList = file.list(); File temp = null; for ( int i = 0; i < tempList.length; i++ ) { if ( path.endsWith( File.separator ) ) { temp = new File( path + tempList[i] ); } else { temp = new File( path + File.separator + tempList[i] ); } if ( temp.isFile() ) { temp.delete(); } if ( temp.isDirectory() ) { delAllFile( path + "/" + tempList[i] );//先删除文件夹里面的文件 delFolder( path + "/" + tempList[i] );//再删除空文件夹 } } } /** * 复制单个文件 * * @param oldPath String 原文件路径 如:c:/moumoulrc.txt * @param newPath String 复制后路径 如:f:/moumo * @return boolean */ public void copyFile( String oldPath, String newPath ) { try { int bytesum = 0; int byteread = 0; File oldfile = new File( oldPath ); if ( oldfile.exists() ) { //文件存在时 InputStream inStream = new FileInputStream( oldPath ); //读入原文件 FileOutputStream fs = new FileOutputStream( newPath ); byte[] buffer = new byte[1444]; int length; while ( ( byteread = inStream.read( buffer ) ) != - 1 ) { bytesum += byteread; //字节数 文件大小 System.out.println( bytesum ); fs.write( buffer, 0, byteread ); } inStream.close(); } } catch ( Exception e ) { System.out.println( "复制单个文件操作出错" ); e.printStackTrace(); } } /** * 复制整个文件夹内容 * * @param oldPath String 原文件路径 如:c:/fqf * @param newPath String 复制后路径 如:f:/fqf/ff * @return boolean */ public void copyFolder( String oldPath, String newPath ) { try { ( new File( newPath ) ).mkdirs(); //如果文件夹不存在 则建立新文件夹 File a = new File( oldPath ); String[] file = a.list(); File temp = null; for ( int i = 0; i < file.length; i++ ) { if ( oldPath.endsWith( File.separator ) ) { temp = new File( oldPath + file[i] ); } else { temp = new File( oldPath + File.separator + file[i] ); } if ( temp.isFile() ) { FileInputStream input = new FileInputStream( temp ); FileOutputStream output = new FileOutputStream( newPath + "/" + ( temp.getName() ).toString() ); byte[] b = new byte[1024 * 5]; int len; while ( ( len = input.read( b ) ) != - 1 ) { output.write( b, 0, len ); } output.flush(); output.close(); input.close(); } if ( temp.isDirectory() ) {//如果是子文件夹 copyFolder( oldPath + "/" + file[i], newPath + "/" + file[i] ); } } } catch ( Exception e ) { System.out.println( "复制整个文件夹内容操作出错" ); e.printStackTrace(); } } /** * 移动文件到指定目录 * * @param oldPath String 如:c:/fqf.txt * @param newPath String 如:d:/fqf.txt */ public void moveFile( String oldPath, String newPath ) { copyFile( oldPath, newPath ); delFile( oldPath ); } /** * 移动文件夹到指定目录 * * @param oldPath String 如:c:/fqf * @param newPath String 如:d:/fqf */ public void moveFolder( String oldPath, String newPath ) { copyFolder( oldPath, newPath ); delFolder( oldPath ); } public static void main( String args[] ) { FileOperate a = new FileOperate(); //测试用代码...... }} 按照 xitianjile(空想社會主義) 的说法,用FileOutputStream,若该文件事先存在则直接覆盖该文件,不过api手册好像不是这样,请把具体的代码写出来,先谢了 public void CreateFile(String path,String filename){//文件路径,filename文件名 File f=new File(path); if(!f.exists()); f.mkdir(); FileOutputStream fos=new FileOutputStream(path+"/"+filename); fos.close();} win7 ie7 不明问题请教 在java里面怎样把图片存入SQL里面 请问如何用正则表达式去掉全部带&的标记???????? 如何把父类中的内容填充到子类 500的异常 Command not allowed in Extended Passive mode 的错误怎么解决啊! 请教关于JDBC的rs.next()的问题 java 的 BufferedReader 问题 关于小弟的第一个JAVA程序的问题 rmi 在不同的机器上运用问题 我想设计个查询数据库的缓冲类,碰上了一些问题,大家来探讨一下吧 如何得到一个可用的Port
if(f.exists())
f.delete();
f.createNewFile();
} /**
* 新建目录
*
* @param folderPath String 如 c:/moumoulr
*
* @return boolean
*/
public void newFolder( String folderPath ) {
try {
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File( filePath );
if ( ! myFilePath.exists() ) {
myFilePath.mkdir();
}
} catch ( Exception e ) {
System.out.println( "新建目录操作出错" );
e.printStackTrace();
}
} /**
* 新建文件
*
* @param filePathAndName String 文件路径及名称 如c:/moumoulrc.txt
* @param fileContent String 文件内容
* @return boolean
*/
public void newFile( String filePathAndName, String fileContent ) { try {
String filePath = filePathAndName;
filePath = filePath.toString();
File myFilePath = new File( filePath );
if ( ! myFilePath.exists() ) {
myFilePath.createNewFile();
}
FileWriter resultFile = new FileWriter( myFilePath );
PrintWriter myFile = new PrintWriter( resultFile );
String strContent = fileContent;
myFile.println( strContent );
resultFile.close(); } catch ( Exception e ) {
System.out.println( "新建目录操作出错" );
e.printStackTrace(); } } /**
* 删除文件
*
* @param filePathAndName String 文件路径及名称 如c:/moumoulrc.txt
* @param fileContent String
* @return boolean
*/
public void delFile( String filePathAndName ) {
try {
String filePath = filePathAndName;
filePath = filePath.toString();
java.io.File myDelFile = new java.io.File( filePath );
myDelFile.delete(); } catch ( Exception e ) {
System.out.println( "删除文件操作出错" );
e.printStackTrace(); } } /**
* 删除文件夹
*
* @param filePathAndName String 文件夹路径及名称 如c:/moumoulrc
* @param fileContent String
* @return boolean
*/
public void delFolder( String folderPath ) {
try {
delAllFile( folderPath ); //删除完里面所有内容
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File( filePath );
myFilePath.delete(); //删除空文件夹 } catch ( Exception e ) {
System.out.println( "删除文件夹操作出错" );
e.printStackTrace(); } } /**
* 删除文件夹里面的所有文件
*
* @param path String 文件夹路径 如 c:/moumoulrc
*/
public void delAllFile( String path ) {
File file = new File( path );
if ( ! file.exists() ) {
return;
}
if ( ! file.isDirectory() ) {
return;
}
String[] tempList = file.list();
File temp = null;
for ( int i = 0; i < tempList.length; i++ ) {
if ( path.endsWith( File.separator ) ) {
temp = new File( path + tempList[i] );
} else {
temp = new File( path + File.separator + tempList[i] );
}
if ( temp.isFile() ) {
temp.delete();
}
if ( temp.isDirectory() ) {
delAllFile( path + "/" + tempList[i] );//先删除文件夹里面的文件
delFolder( path + "/" + tempList[i] );//再删除空文件夹
}
}
} /**
* 复制单个文件
*
* @param oldPath String 原文件路径 如:c:/moumoulrc.txt
* @param newPath String 复制后路径 如:f:/moumo
* @return boolean
*/
public void copyFile( String oldPath, String newPath ) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File( oldPath );
if ( oldfile.exists() ) { //文件存在时
InputStream inStream = new FileInputStream( oldPath ); //读入原文件
FileOutputStream fs = new FileOutputStream( newPath );
byte[] buffer = new byte[1444];
int length;
while ( ( byteread = inStream.read( buffer ) ) != - 1 ) {
bytesum += byteread; //字节数 文件大小
System.out.println( bytesum );
fs.write( buffer, 0, byteread );
}
inStream.close();
}
} catch ( Exception e ) {
System.out.println( "复制单个文件操作出错" );
e.printStackTrace(); } } /**
* 复制整个文件夹内容
*
* @param oldPath String 原文件路径 如:c:/fqf
* @param newPath String 复制后路径 如:f:/fqf/ff
* @return boolean
*/
public void copyFolder( String oldPath, String newPath ) { try {
( new File( newPath ) ).mkdirs(); //如果文件夹不存在 则建立新文件夹
File a = new File( oldPath );
String[] file = a.list();
File temp = null;
for ( int i = 0; i < file.length; i++ ) {
if ( oldPath.endsWith( File.separator ) ) {
temp = new File( oldPath + file[i] );
} else {
temp = new File( oldPath + File.separator + file[i] );
} if ( temp.isFile() ) {
FileInputStream input = new FileInputStream( temp );
FileOutputStream output = new FileOutputStream( newPath
+ "/" + ( temp.getName() ).toString() );
byte[] b = new byte[1024 * 5];
int len;
while ( ( len = input.read( b ) ) != - 1 ) {
output.write( b, 0, len );
}
output.flush();
output.close();
input.close();
}
if ( temp.isDirectory() ) {//如果是子文件夹
copyFolder( oldPath + "/" + file[i], newPath + "/"
+ file[i] );
}
}
} catch ( Exception e ) {
System.out.println( "复制整个文件夹内容操作出错" );
e.printStackTrace(); } } /**
* 移动文件到指定目录
*
* @param oldPath String 如:c:/fqf.txt
* @param newPath String 如:d:/fqf.txt
*/
public void moveFile( String oldPath, String newPath ) {
copyFile( oldPath, newPath );
delFile( oldPath ); } /**
* 移动文件夹到指定目录
*
* @param oldPath String 如:c:/fqf
* @param newPath String 如:d:/fqf
*/
public void moveFolder( String oldPath, String newPath ) {
copyFolder( oldPath, newPath );
delFolder( oldPath ); } public static void main( String args[] ) {
FileOperate a = new FileOperate();
//测试用代码......
}
}
用FileOutputStream,若该文件事先存在则直接覆盖该文件,不过api手册好像不是这样,请把具体的代码写出来,先谢了
File f=new File(path);
if(!f.exists());
f.mkdir();
FileOutputStream fos=new FileOutputStream(path+"/"+filename);
fos.close();
}