构造方法:File(String filename);
File(String directoryPath,String filename);
File(File f,String filename);
指定类型的文件:
public String[] list(FilenameFilter obj):以字符串形式返回目录下目录下指定类型的所有文件.
public File[] listFiles(FilenameFilter obj):用File对象返回目录下指定类型的所有文件.
FilenameFilter是一个接口,该接口有一个方法:
public boolean accept(File dir,String name);
示例为jsp页面上的代码:
<%!
class FileJSP implements FilenameFilter
{
String str = null;
FileJSP(String s)
{
str = "."+s;
}
public boolean accept(File dir,String name)
{
return name.endsWith(str);
}
}
%>
<br>目录中的jsp文件:
<%
FileJSP file_jsp = new FileJSP("jsp");
String file_name[] = dir1.list(file_jsp);
for(int i = 0;i<file_name.length;i++)
{
out.print("<br>"+file_name[i]);
}
%>
使用字节流读写文件:
所有字节输入流类都是InputStream抽象类的子类,而所有的字节输出流类都是OutputStream抽象类的子类.
FileInputStream ,FileOutputStream类分别从InputStream,OutputStream类继承而来.
为了提高读写效率,FileInputStream 经常和BufferedInputStream 流配合使用.
FileOuputStream流经常和BufferedOutputStream流配合使用.
对应的构造方法分别为:BufferedInputStream(InputStream in);
BufferedOutputStream(OutputStream out);
示例代码为:(JSP页面内编写)
<%
File f6 = new File("F:/SF/Test1.java");
try
{
/* FileOutputStream outfile = new FileOutputStream(f6);
BufferedOutputStream bufferout = new BufferedOutputStream(outfile);
byte[] b = "你们好,很高兴认识你们呀!<br>nice to meet you ".getBytes();
bufferout.write(b);
bufferout.flush();
bufferout.close();
outfile.close(); */
FileInputStream in = new FileInputStream(f6);
BufferedInputStream bufferin = new BufferedInputStream(in);
byte c[] = new byte[90];
int n = 0;
while((n=bufferin.read(c))!=-1)
{
String temp = new String(c,0,n);
out.print(temp);
}
bufferin.close();
in.close();
}
catch(IOException e){}
%>
使用字符流读写文件:
使用字节流读写文时,因为字节流不能直接操作Unicode字符,所以java提供了字符流.由于汉字在文件中占用2个字节,如果使用字节流,读取不当会出现乱码现象,采用字符流就可以避免这个现象.在Unicode字符中,一个汉字被看作一个字符.
所有字符输入流类都是Reader抽象类的子类,而所有字符输出流类都是Writer抽象类的子类.
FileReader类与FileWriter类,BufferedReader 类与BufferedWriter类
代码示例:
<%!
public void writeContent(String str,File f)
{
try{
FileWriter outfile = new FileWriter(f);
BufferedWriter bufferout = new BufferedWriter(outfile);
bufferout.write(str);
bufferout.close();
outfile.close();
}catch(IOException e){}
}
public String readContent(File f)
{
StringBuffer str = new StringBuffer();
try{
FileReader in = new FileReader(f);
BufferedReader bufferin = new BufferedReader(in);
String temp;
while((temp=bufferin.readLine())!=null)
{
str.append(temp+"<br>");
}
bufferin.close();
in.close();
}catch(IOException e ){}
return new String(str);
}
%>
数据流:
DataInputStream类与DataOutputStream类创建的对象分别被数据输入流和数据输出流.它们允许程序按照与机器无关的风格读取java原始数据.也就是说,当读取一个数值时,不必再关心这个数值应当是多少个字节.
构造方法为:DataInputStream(InputStream in);
DataOutputStream(OutputStream out);