File类
什么是文件?
文件可认为是相关记录或放在一起的数据的集合
文件一般存储在哪里?
JAVA程序如何访问文件属性?
File对象可以表示存在的文件或文件夹,也可以表示不存在的。
File类的常用方法:
方法名称 | 说明 |
boolean exists() | 判断文件或目录是否存在 |
boolean isFile() | 判断是否是文件 |
boolean isDirectory() | 判断是否是目录 |
String getPath() | 返回此对象表示的文件的相对路径名 |
String getAbsolutePath() | 返回此对象表示的文件的绝对路径名 |
String getName() | 返回此对象表示的文件或目录的名称 |
boolean delete() | 删除此对象指定的文件或目录 |
boolean createNewFile() | 创建名称的空文件,不创建文件夹 |
long length() | 返回文件的长度,单位为字节, 如果文件不 存在,则返回 0L |
public class FileDemo {
public static void main(String[] args) {
File file = new File("b.txt");
System.out.println(file.getParent());
//创建文件
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(file.canExecute());
System.out.println(file.canRead());
System.out.println(file.canWrite());
System.out.println();
if (file.exists()) {
//删除
file.delete();
} else {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
流的概念:是数据的输入与输出
流的分类:
按流向区分:
输出流:outputStream和Writer
输入流:InputStream和Reader
输入输出流是相对计算机内存来说,而不是相对于元和目标
按处理数据单元划分:
字节流:输入流:InputStream 输出流:outputStream
字符流:输入流: Reader 输出流:Writer
字节流是 8 位通用字节流,字符流是 16 位 Unicode 字符流
文本文件的读写:
用FileInputStream和FileOutputStream读写文本文件
用BufferedReader和BufferedWriter读写文本文件
二进制文件的读写:
使用DataInputStream和DataOutputStream读写二进制文件以及基本数据类型数据的读写
对象的读写:
使用ObjectInputStream和ObjectOutputStream读写对象(序列 化与反序列化)
InputStream类常用方法 :
int read( ) int read(byte[] b) int read(byte[] b,int off,int len) void close( ) int available()
子类FileInputStream常用的构造方法 :
FileInputStream(File file) FileInputStream(String name
OutputStream类常用方法 :
void write(int c) void write(byte[] buf) void write(byte[] b,int off,int len) void close( )
子类FileOutputStream常用的构造方法 :
FileOutputStream (File file) FileOutputStream(String name) FileOutputStream(String
name,boolean append)
public class ObjectInputStreamDemo {
public static void main(String[] args) {
FileInputStream fileInputStream=null;
ObjectInputStream objectInputStream=null;
try {
fileInputStream=new FileInputStream("a.txt");
objectInputStream=new ObjectInputStream(fileInputStream);
String s=objectInputStream.readUTF();
try {
Person person=(Person)objectInputStream.readObject();
System.out.println(person);
} catch (ClassNotFoundException e) {
e.printStackTrace();
};
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
objectInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public class OutputDemo {
public static void main(String[] args) {
FileOutputStream fileOutputStream=null;
ObjectOutputStream objectOutputStream=null;
try {
fileOutputStream=new FileOutputStream("c.txt");
objectOutputStream=new ObjectOutputStream(fileOutputStream);
objectOutputStream.writeUTF("sfsafdg");
objectOutputStream.writeObject(new Person("5102","龙",45));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
objectOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public class OutputStreamDemo {
File file=new File("b.txt");
OutputStream outputStream=null;
{
try {
outputStream = new FileOutputStream(file);
outputStream.write(56);
outputStream.write("sdsaaf".getBytes());
outputStream.write("nfsauhf".getBytes());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public class InputStreamDemo {
public static void main(String[] args) {
InputStream inputStream=null;
try {
inputStream=new FileInputStream("a.txt");
int read=inputStream.read();
System.out.println((char) read);
read=inputStream.read();
System.out.println((char)read);
read=inputStream.read();
System.out.println((char)read);
read=inputStream.read();
System.out.println((char)read);
read=inputStream.read();
System.out.println((char)read);
read=inputStream.read();
System.out.println((char)read);
read=inputStream.read();
System.out.println((char)read);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
}
public class ReaderDemo {
public static void main(String[] args) {
File file =new File("b.txt");
Reader reader=null;
try {
reader=new FileReader(file);
int read=reader.read();
System.out.println((char) read);
read=reader.read();
System.out.println((char) read);
read=reader.read();
System.out.println((char) read);
read=reader.read();
System.out.println((char) read);
read=reader.read();
System.out.println((char) read);
read=reader.read();
System.out.println((char) read);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
文本操作: FileReader FileWriter
字符操作: FileInputStream FileOutputStream
基本数据类型操作: DataInputStream DataOutputStream
操作对象: ObjectInputStream ObjectOutputStream