File类的删除功能
boolean delete()
删除成功返回ture,删除失败返回false
File类获取功能
String | getAbsolustePath( ) f返回此抽象路径名的绝对路径名字符串 |
---|
String | getName返回由此抽象路径名表示的文件或目录的名称 |
String | getPath( )将此抽象路径名转换为一个路径名字符串 |
方法演示:
public class FileMethodDemo{
public static void main(String args[ ]){
//创建文件对象
File file = new File("Test33.java");
//获取文件的绝对路径,即全路径
String absPath = file getAbsolutePath( );
//File中封装的路径是什么获取到的就是什么
String path =file.getPath();
//获取文件名称
String filename = file.getName( );
System.out.println("absPath="+absPath);
System.out.println("path="+path);
System.out.println("filename="+filename);
}
}
File获取判断功能
boolean | exists( )判断File构造方法中封装路径是否存在 |
---|
boolean | isDirectory( )判断File构造方法中封装的路径是不是文件夹 |
boolean | isFile( ) 判断File构造方法这种封装的路径是不是文件 |
File类获取list功能
String | list()返回一个字符串数组,这些字符串制定此抽象路径表示的目录中的文件和目录 |
---|
File | listFiles( )返回一个抽象路径数组,这些路径名表示由此抽象路径名表示的目录中的文件 |
方法演示:
public class FileMethodDemo3 {
public static void main(String[] args) {
File dir = new File("e:\\java_code");
//获取的是目录下的当前的文件以及文件夹的名称。
String[] names = dir.list();
for(String name : names){
System.out.println(name);
}
//获取目录下当前文件以及文件对象,只要拿到了文件对象,那么就可以获取其中想要的信息
File[] files = dir.listFiles();
for(File file : files){
System.out.println(file);
}
}
}
注意: 在获取指定目录下的文件或者文件夹时必须满足下面两个条件
- 1,指定的目录必须是存在的,
- 2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException
字节输入流
abstract int | read( )从输入流中读取数据的下一个字节 |
---|
int | read( byte[ ] b) 从输入流中读取一定数量的字节,并将七储存在 缓冲区数组b中。 |
- int read():读取一个字节并返回,没有字节返回-1.
字节输出流OutputStream
void | close( )关闭此输出流并释放于此刘有关的所有系统资源 |
---|
void | write(byte[ ] b )将指定byte数组中从偏移量byte数组写入此输出流 |
void | write(byte[ ] b.int off,int len)指定byte数组中从偏移量off开始的冷个字节写入此输出流 |
void | write(int b)将指定的自觉写入此输出流 |
FileInputStream
FileInputStream(File file) | 通过打开到世纪文件的链接来创建一个FileInputStream,该文件通过文件系统中的 File对象file指定 |
---|
FileInputStream(String name) | 通过打开一个到实际文件的链接来创建一个FileInputStream,该文件通过文件系统中的路径名name指定。 |
FileOutputStream
public class FileOutputStreamDemo {
public static void main(String[] args) throws IOException {
//需求:将数据写入到文件中。
//创建存储数据的文件。
File file = new File("c:\\file.txt");
//创建一个用于操作文件的字节输出流对象。一创建就必须明确数据存储目的地。
//输出流目的是文件,会自动创建。如果文件存在,则覆盖。
FileOutputStream fos = new FileOutputStream(file);
//调用父类中的write方法。
byte[] data = "abcde".getBytes();
fos.write(data);
//关闭流资源。
fos.close();
}
}
- 上面的for.write(“abcde”.getBytes())用的是write(byte[] b)方法,它会将字节数组中b.length个字节即所有字节都写入到输出流中。可以采用write(byte[] b,int off,int len)方法每次写给定位置、长度的字节数据。
给文件的换行
FileOutputStream (File file,booiean,boolean append)创建一个指定的File对象表示文件中写入数据的输出文件流 |
---|
FileOutputStream(String name,boolean append)创建一个具指定name的文件中写入数据的输出文件流 |
public class FileOutputStreamDemo2 {
public static void main(String[] args) throws Exception {
File file = new File("c:\\file.txt");
FileOutputStream fos = new FileOutputStream(file, true);
[设置给指定文件续写数据]
String str = "\r\n"[实现换行]+"itcast";
fos.write(str.getBytes());
fos.close();
}
}
IO异常处理
public class FileOutputStreamDemo3 {
public static void main(String[] args) {
File file = new File("c:\\file.txt");
//定义FileOutputStream的引用
FileOutputStream fos = null;
try {
//创建FileOutputStream对象
fos = new FileOutputStream(file);
//写出数据
fos.write("abcde".getBytes());
} catch (IOException e) {
System.out.println(e.toString() + "----");
} finally {
//一定要判断fos是否为null,只有不为null时,才可以关闭资源
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
throw new RuntimeException("");
}
}
}
}
}
- 细节: 1. 保证流对象变量,作用域足够。
2. catch里面,怎么处理异常
输出异常的信息,目的是看到哪里出现了问题。
3. 如果流对象建立失败了,需要关闭资源吗?
new对象的时候,失败了没有占用系统资源
释放资源的时候,对流对象判断null
变量不是null,对象建立成功,需要关闭资源。