File(String pathname)
File(URLI uri)
booelan exists() 判断文件或目录是否存在
boolean isDirectory 判断是否是目录
boolean isFile() 判断是否是文件
long length() 返回文件的字节数
String getName() 返回对象文件或目录的名称
String getPath() 返回对象表示的文件的相对路径名
String getAbsolutePath() 返回此对象表示的绝对路径名
long lastModified() 返回文件最后一次被修改的事件
File[] listFiles() 返回该文件路径下的文件列表
String list() 返回该目录下的文件列表名
boolean mkdir() 创建抽象路径指定的目录
boolan createNewFile() 创建名称的空文件,不创建文件夹
boolean delete() 删除对象指定的文件或目录
public static void main(String[] args) throws IOException { File file=new File("E:\\乱七八糟"); File file2=new File("E:/乱七八糟/乱七八糟1"); File file3=new File("E:/乱七八糟/sss"); file3.mkdir(); if(file.exists()&& file.isDirectory()){ System.out.println("文件存在且是目录"); System.out.println("文件名:"+file.getName()); System.out.println("文件相对路径:"+file.getPath()); System.out.println("文件绝对路径:"+file.getAbsolutePath()); System.out.println("文件长度:"+file.length()); System.out.println("文件最后一次被修改时间:"+file.lastModified()); System.out.println("文件路径分隔符:"+file.separator); }else{ System.out.println("文件不存在"); if(file.createNewFile()){ System.out.println("创建文件成功"); } } File f[]=file.listFiles(); for(File f1:f){//遍历该文件下所有文件 System.out.print(f1.getName()+"\t"); } } 文件存在且是目录 文件名:乱七八糟 文件相对路径:E:\乱七八糟 文件绝对路径:E:\乱七八糟 文件长度:4096 文件最后一次被修改时间:1603155616099 文件路径分隔符:\ apache-zookeeper-3.6.1-bin.tar.gz bookmarks_2020_10_13.html DevInstall读写数据以字节为单位进行处理
父类InputStream
构造方法
FileInputStream(File file)
FileInputStream(String path)
常用方法
int read() 从输入流读取一个字节数据,返回该字节的ASCII的值
int read(byte[] b) 从输入流最多读取b.length个字节并放入字节数组中
int read(byte[] b,int off,int len) 从输入流读取最多为len字节并放入字节数组中
int available() 返回从输入流读取剩余的字节数的估计值
void close()
public class S2FileInputStream { public static void main(String[] args) throws IOException { File file=new File("C:/Users/lgm/Desktop/sss.txt"); InputStream is=new FileInputStream(file); //读取操作1 // char c=' ';//保存读取字符 // int k=0; // while((k=is.read())!=-1){ // System.out.print((char)k); // } // System.out.println(); //读取操作2 // byte b[]=new byte[(int)file.length()]; // is.read(b);//将文件内容读取出来并放入字节数组b中 // String s=new String(b); // System.out.println("ss:"+s); // System.out.println(); //读取操作3 System.out.println("剩余字节数:"+is.available()); System.out.println("长度:"+file.length()); Scanner input=new Scanner(is); input.useDelimiter("b"); while(input.hasNext()){ System.out.println(input.next()); System.out.println("内容:"+is.available()); } } } 剩余字节数:67 长度:67 Nr5NDGhMr 内容:0 EG234567 内容:0 澹ぇ澶鎭╁晩 内容:0 鍙戝姩鏈烘槸鍜栧暋濂ュ崱绂? 内容:0父类OutputStream
构造方法
FileOutputStream(File file)
FileOutputStream(String path)
FileOutputStream(File file,boolean append)
FileOutputStream(String path,boolean append)
append如果是true,则将字节写入文件末尾处,而不是从开始处写入
常用方法
void write(int c)
void write(byte[] buf)
void write(byte[] b,int off,int len)
void close()
public class S3FileOutputStream { public static void main(String[] args) throws IOException { File file=new File("C:/Users/lgm/Desktop/sss.txt"); OutputStream os=new FileOutputStream(file,true);//每次写入的内容追加到文件后面 //若相应文件不存在会自动创建 //写入操作1:按字节写入 char c=' '; os.write((int)c); //写入操作2:按字节数组写入 String s="中文 hellow orld"; os.write(s.getBytes()); os.close(); } }读写数据以字符为单位进行处理
父类Reader
构造方法
InputStreamReader(InputStream in)
InputStreamReader(InputStream in,Charset cs)
常用方法
String getEncoding() 返回流使用的字符编码
int read() 读取单个字符 int read(char c[]) 读取最多b.length个字符并放于字符数组中
int read(char c[],int offset,int length)
public class S4InputStreamReader { public static void main(String[] args) throws IOException { File file=new File("C:/Users/lgm/Desktop/sss.txt"); InputStream is=new FileInputStream(file); Reader reader=new InputStreamReader(is); // //1.逐个读取单个字符 // char c=' '; // int k=0; // while((k=reader.read())!=-1){ // System.out.print((char)k); // } // System.out.println(); //2.一次性读取一个字符数组 // char ca[]=new char[(int)file.length()]; // reader.read(ca); // System.out.println(new String(ca)); // reader.close(); // is.close(); System.out.println(file.length()); Scanner input=new Scanner(reader); //input.useDelimiter("\n");//设置分隔符 while(input.hasNext()){ System.out.println(input.next()); } } }父类Writer
构造方法
OutputStreamWriter(OutputStream os)
OutputStreamWriter(OutputStream in,Charset cs)
常用方法
String getEncoding() 返回流使用的字符编码
void write(int c) 写入单个字符 void write(char c[]) 将字符数组写入
void write(char [],int offset,int length) 写入字符数组的一部分
void write(String s)
void write(String s,int off,int len)
public class S5OutputStreamWriter { public static void main(String[] args) throws IOException { File file=new File("C:/Users/lgm/Desktop/sss.txt"); OutputStream os=new FileOutputStream(file,true); Writer writer=new OutputStreamWriter(os); //一次性写入单个字符 writer.write((int)'A'); //一次性写入一个字符数组 String s="内部OSPF骨干和非骨干"; char c[]=s.toCharArray(); writer.write(c); //一次性写入一个字符串 String ss="写入一个字符串"; writer.write(ss); writer.close(); os.close(); } }构造方法
BufferedReader(Reader reader)
常用方法
int read()
int read(byte b[])
int read(byte b[],int off,int len)
String readLine() 读取一行文本
long skip(long n)
public class S6BufferedReader { public static void main(String[] args) throws Exception { File file=new File("C:/Users/lgm/Desktop/sss.txt"); InputStream is=new FileInputStream(file); Reader reader=new InputStreamReader(is); BufferedReader bufferedReader=new BufferedReader(reader); // //1.逐个个读取 // int c; // while((c=bufferedReader.read())!=-1){ // System.out.print((char)c); // } // //2.逐行读取 // String s=""; // while((s=bufferedReader.readLine())!=null){ // System.out.println(s); // } //3.多个读取且不超数组长度 char c[]=new char[(int)file.length()]; bufferedReader.read(c); System.out.println(new String(c)); bufferedReader.close(); reader.close(); is.close(); } }构造方法
BufferedWriter(Writer writer) 创建一个默认大小输出缓冲区的缓冲字符输出流
BufferedWriter(Writer writer,int sz) 创建一个使用给定大小缓冲区的缓冲字符输出流
常用方法
void write(int i)
void write(char c[])
void write(char [],int offset,int length) 写入字符数组的一部分
void write(String s)
void write(String s,int off,int len)
void newLine()
public class S7BufferedWriter { public static void main(String[] args) throws IOException { File file=new File("C:/Users/lgm/Desktop/sss.txt"); OutputStream os=new FileOutputStream(file); Writer writer=new OutputStreamWriter(os); BufferedWriter bufferedWriter=new BufferedWriter(writer); //1.写入单个字符 bufferedWriter.write((int)'F'); //2.写入字符数组 String sa="设计开发sss安抚撒发生"; bufferedWriter.write(sa.toCharArray()); //3.写入字符串 bufferedWriter.write("通过缓冲输出流写入字符串"); bufferedWriter.close(); writer.close(); os.close(); } }FileInputStream 的子类
构造方法
DataInputStream(InputStream is)
常用方法
int read(byte[] b) 读出字节并且存储到字节数组
int ready(byte[] b,int off,int len)
String readLine()
FileOutputStream的子类
构造方法
DataOutputStream(OutputStream os)
常用方法
int size()
void write(int a)
void write(byte[] b)
public class S8DataInOutputStream { public static void main(String[] args) throws IOException { File f=new File("C:\\Users\\lgm\\Pictures\\preview (2).jpg"); InputStream is=new FileInputStream(f); DataInputStream dis=new DataInputStream(is); byte b[]=new byte[(int)f.length()]; dis.read(b); File file=new File("C:\\Users\\lgm\\Desktop\\preview.jpg"); OutputStream os=new FileOutputStream(file); DataOutputStream dos=new DataOutputStream(os); dos.write(b); dis.close(); dos.close(); is.close(); os.close(); } }构造方法
PrintStream(File file)
PrintStream(OutputStream os)
常用方法
PrintStream printf(Locale i,String format,Object…atgs) 根据指定的Locale进行格式化输出
PrintStream printf(boolean b)该方法被重载多次,可输出任意数据
void println(boolean b) 该方法被重载多次,输出任意数据后换行
%s 内容为字符串
%d 内容为整数
%f 内容为小数
%c 内容为字符