1.在某个文件夹下列出所有文件
File fl=new File("F:\\迅雷下载");
System.out.println(fl.isDirectory());
File[] file=fl.listFiles(new filter());
for (File file2:file) {
System.out.println(file2.getName()+" 大小:"+file2.length()/1024.0/1000.00+"M");
}
public boolean accept(File arg0) {
if (arg0.isDirectory()) {
return true;
}
return false;
}
2.文件输入流
读取文件的方式(固定写法)
FileInputStream fis=null;
try {
//创建一个文件输入流
fis=new FileInputStream("F:\\配置.txt");
//创建一个字节数组用来存储读取的信息
byte[] buf=new byte[1024];
//使用len读取长度,len>=0说明读取到了元素,可以直接对元素进行操作
int len=0;
while((len=fis.read(buf))>=0){
System.out.write(buf,0,len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{
if (fis!=null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3.文件通过流的方式拷贝
FileInputStream fis=null;
FileOutputStream fos=null;
try {
fis=new FileInputStream("E:\\SN.txt");
fos=new FileOutputStream("D:/SN1.txt");
int len=0;
byte[] buf=new byte[1024];
while((len=fis.read(buf))>=0){
fos.write(buf, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
fis.close();
fos.close();
}
4.过滤流,缓冲和装饰的作用,使字节流变更强大
FileInputStream fileInputStream=null;
BufferedInputStream bufferedInputStream=null;
BufferedOutputStream bufferedOutputStream=null;
try {
fileInputStream=new FileInputStream("E:\\SN.txt");
bufferedInputStream=new BufferedInputStream(fileInputStream);
bufferedOutputStream=new BufferedOutputStream(new FileOutputStream("D:/1.txt"));
int len=0;
byte[] bs=new byte[1024];
while((len=bufferedInputStream.read(bs))>=0){
bufferedOutputStream.write(bs,0,len);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if (bufferedOutputStream!=null) {
try {
bufferedOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (bufferedInputStream!=null) {
try {
bufferedInputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
5.数据流,若果想存储基本类型就用
DataOutputStream,读取用DataInputStream
FileOutputStream fos=null;
FileInputStream fis=null;
DataOutputStream dataOutputStream=null;
DataInputStream dataInputStream=null;
try {
fos=new FileOutputStream("D:\\1.txt");
dataOutputStream=new DataOutputStream(fos);
dataOutputStream.writeInt(111);//写一个整数
dataOutputStream.writeInt(112);//写一个整数
dataOutputStream.writeInt(113311212);//写一个整数
dataInputStream=new DataInputStream(new FileInputStream("D:\\1.txt"));
System.out.println(dataInputStream.readInt());
System.out.println(dataInputStream.readInt());
System.out.println(dataInputStream.readInt());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
6.字节流一般是XXXstream,字符流一般是XXXReader,XXXWriter
此处用于读取字符文件(log日志)到系统可以根据规则判断写入文件
BufferedReader br=null;
PrintWriter pw=null;
try {
br=new BufferedReader(new FileReader("D:\\v6logs\\qmslog\\bsp.log"));
pw=new PrintWriter(new BufferedWriter(new FileWriter("D:\\1.txt")));
String str=null;
while((str=br.readLine())!=null){
if (str.startsWith("[2014-03-14")) {
System.out.println(str);
pw.println(str);
}
}
pw.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
7.使用转换流来处理标准输入
InputStream in=System.in;
/*while(true){
byte[] by=new byte[1024];
int len=0;
while((len=in.read(by))>0){
System.out.write(by,0,len);
}
}*/
BufferedReader br=null;
br=new BufferedReader(new InputStreamReader(in));
String str=null;
while((str=br.readLine())!=null){
if ("exit".equals(str)) {
break;
}else {
System.out.println("您输入了:"+str);
}
}
8.