新建文件
public static void main(String[] args) throws IOException {
File file=new File("D:\\aaa");
file.mkdirs();
File src=new File(file,"a.txt");
boolean b=src.createNewFile();
if(b){
System.out.println("success");
}else{
System.out.println("fail");
}
}
查找以txt结尾的文件
public class Main {
public static void main(String[] args) throws IOException {
findtxt();
}
public static void findtxt(){
File arr[]=File.listRoots();
for(File f:arr){
findtxt(f);
}
}
private static void findtxt(File src) {//递归
File[] files=src.listFiles();//遍历
if(files!=null){
for(File file:files){
if(file.isFile()){
String name=file.getName();
if(name.endsWith("txt")){
System.out.println(file);
}
}else{
findtxt(file);
}
}
}
}
}
文件
FileOutputStream fos=new FileOutputStream("D:\\aaa",true);//TRUE为可以续写
String str="kankeji";
byte[] bytes=str.getBytes();
fos.write(bytes);
String warp="\r\n";//换行
byte[] bytes1=warp.getBytes();
fos.write(bytes1);
fos.close();
拷贝文件
FileInputStream fis=new FileInputStream("D:\\iji\\ijjij");
FileOutputStream fos=new FileOutputStream("dms\\dnos");
int b;
//短文本
while((b= fis.read())!=-1){
fos.write(b);
}
//长文本,音频,图片
int len;
byte[] bytes=new byte[1024*1024*5];
while((len= fis.read())!=-1){
fos.write(bytes,0,len);
}
fos.close();//注意顺序
fis.close();
异常加复制文件
public static void main(String[] args) throws IOException {
FileInputStream fis=null;
FileOutputStream fos=null;
try{
fis=new FileInputStream("dsi\\dmso");
fos=new FileOutputStream("dmsoo\\dnsi");
int len;
byte[] bytes=new byte[1024*1024*5];
while((len= fis.read(bytes))!=-1){
fos.write(bytes,0,len);
}
}catch (IOException e){
}finally {
if(fos!=null){
try {
fos.close();
}catch (IOException e){
e.printStackTrace();
}
}
if(fis!=null){
try{
fis.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
}
GBK:国家标准扩展;
字母一字节,一个汉字三字节 unicode,UTF-8是unicode 的一种方式而已.
String str="uok安安";
byte[] b=str.getBytes();
System.out.println(Arrays.toString(b));
byte [] bytes=str.getBytes("GBK");
System.out.println(Arrays.toString(bytes));
//解码 [117, 111, 107, -27, -82, -119, -27, -82, -119]
//[117, 111, 107, -80, -78, -80, -78]
//uok安安
String str1=new String(b);
System.out.println(str1);
int b;
while((b=fis.read())!=-1){
fos.write(b^2);
}
上面用到异或^,不同为true,可以对文件进行加密,至于数字2则可以换成其他的,若果要解密,则
再进行一次b^2即可.
复制文件夹,包括子文件
public static void copydir(File src, File dest) throws IOException{
dest.mkdirs();
File files[]=src.listFiles();
for(File file:files){
if(file.isFile()){
FileInputStream fis=new FileInputStream(file);
FileOutputStream fos=new FileOutputStream(new File(dest,file.getName()));
byte[] bytes=new byte[1024];
int len;
while((len=fis.read(bytes))!=-1){
fos.write(bytes,0,len);
}
fos.close();
fis.close();
}else{
copydir(file,new File(dest,file.getName()));
}
}
}