java.io包
1、File类
File是IO包中唯一能代表磁盘文件本身的对象;
java能正确处理windows和unix中的路径分隔符;windows \,unix /,如果使用\,就要用转义符\\;
java约定是用unix和url风格的斜线/来作路径分隔符;
File f = new File("d:/1.txt"); File(String directoryPath);
if (f.exists())
{f.delete();}
else{
try
{f.createNewFile();}
catch (Exception e){
e.printStackTrace();}
}
System.out.println("文件名:" + f.getName());
System.out.println("文件路径:" + f.getPath());
System.out.println("绝对路径:" + f.getAbsolutePath());
System.out.println("父文件夹名称:" + f.getParent());
System.out.println(f.exists() ?"文件存在":"文件不存在");
System.out.println(f.canWrite()?"文件可写":"文件不可写");
System.out.println(f.canRead()?"文件可读":"文件不可读");
System.out.println(f.isDirectory()?"是":"不是" +"目录");
System.out.println(f.isFile()?"是":"不是" + "文件");
System.out.println(f.isAbsolute()?"是":"不是" + "绝对路径");
System.out.println("文件最后修改时间" + f.lastModified());
System.out.println("文件大小" + f.length() + "Bytes" );
(四个抽象类)字节流 字符流
输入流 InputStream Reader
输出流 OutputStream Writer
按功能分为节点流和处理流,凡是以Stream结尾的都是节点流;
常用方法:
InputStream:int read();int read(byte[] buffer);void close();
OutputStream:void write(byte b);void write(byte[] b);void flush();void close();
Reader:int read();int read(char[] cbuf);void close();
Writeer:void write(int c); void write(char[] cbuf);void write(String string);void close();void flush();
处理流:
FileInputStream(FileNotFoundExceptinon)
、FileOutputStream;(IOExceptinon)
FileInputStream(String filePath);FileInputStream(File fileObj);
FileOutputStream(String filePath);FileOutputStream(File fileObj);FileOutputStream(String filePath,boolean append);
FileReader、
FileWriter;
BufferedInputStream、
BufferedOutputStream;
BufferedReader、
BufferedWriter;
InputStreadReader、
OutputStreamWriter;
DataInputStream、
DataOutputStream;
PrintStrem(针对字节)、
PrintWriter(针对字符);
Object流:直接将Object写入或读出;
public class TestObjectIO
{
public static void main(String[] args) throws Exception
{
T t = new T();
t.k = 8;
FileOutputStream fos = new FileOutputStream("F:/123.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(t);
oos.flush();
oos.close();
FileInputStream fis = new FileInputStream("F:/123.dat");
ObjectInputStream ois = new ObjectInputStream(fis);
T tRead = (T)ois.readObject();
System.out.println(tRead.i +"," + tRead.j +","+ tRead.d+","+tRead.k);
}
}
class T implements Serializable
{
int i = 10;
int j = 9;
double d = 2.3;
int k = 15;transient int k = 15;//在序列化时,该变量不予考虑,不会写入文件
}