该构造方法根据f抽象路径名和 child 路径名字符串创建一个新 File 实例。语法如下:
new File(File f, String child)
f:父路径对象,如D:/doc/。
child:子路径字符串,如letter.txt。
当使用File类创建一个文件对象后,如果当前目录不存在该路径的文件,那么File类对象可以通过调用createNewFile()方法创建该名称的文件。
File 类提供了很多方法以获取文件本身的信息,其中常用的方法如表所示。
方法 | 返回值 | 说明 |
---|---|---|
getName() | String | 获取文件的名称 |
canRead() | boolean | 判断文件是否为可读的 |
canWrite() | boolean | 判新文件是杏可被写入 |
exists() | boolean | 判断文件是否存在 |
length() | long | 获取文件的名称 |
getAbsolutePath() | String | 获取文件的绝对路径 |
getParent() | String | 获取文件的父路径 |
isFile() | boolean | 获取指定路径名表示的文件是否为一个标准文件 |
isDirectory() | boolean | 判断文件是否为一个目录 |
isHidden() | boolean | 判断文件是否为隐藏文件 |
lastModifield() | long | 获取文件的最后修改时间 |
读取文本文件的名称、长度和隐藏属性:
import java.io.File;
public class FileTest2 (
public static void main(Stringi args) {
File file = new File("D: word.txt");
if (file.exists()) {
String name = file.getNamel();
long length = file.length();
boolean hidden = file.isHidden;
System.out.println("文件名称:"+ name);
System.out.println("文件长度是:"+ length);
System.out.println("该文件是隐藏文件吗?"+hidden);
} else {
System.out.println(”该文件不存在”);
}
}
}
FileInputStream
类和FileOutputStream
类都用来操作磁盘文件。如果用户的文件读取需求比较简单,则可以使用FilelnputStream
类,该类继承自InputStream
类。FileOutpuSuream
类与FilelnputStream
类对应,提供了基本的文件写入能力。FileOuputStream
类是OutputStream
类的子类。FilelnputStream
类常用的构造方法如下:
FileInputStream(String name);
FilelnputStream(File file);
第一个构造方法使用给定的文件名name创建一个FilelnputStream
对象,第二个构造方法使用File对象创建FilelnputStream
对象。第一个构造方法比较简单,但第二个构造方法允许在把文件连接到输入流之前对文件做进一步分析。FileOutputStream
类具有与FileInputStream
类相同的参数构造方法,创建一个FileOutputStream
对象时,可以指定不存在的文件名,但此文件不能是一个已被其他程序打开的文件。比如下面的例子:
public class FileStreamDemo {
public static void main(String[] args) throws IOException {
File file = new File("D:\\word.txt");
try {
FileOutputStream fileOutputStream = new FileOutputStream(file);
byte[] bytes = "amber".getBytes();
fileOutputStream.write(bytes);
fileOutputStream.close();
}catch (Exception e){
e.printStackTrace();
}
try {
FileInputStream fileInputStream = new FileInputStream(file);
byte[] bytes = new byte[1024];
int read = fileInputStream.read(bytes);
System.out.println(new String(byt,0,len));
fileInputStream.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
使用FileOupuStream
类向文件中写入数据与使用FilelnputStream
类从文件中将内容读出来,都存在一点不足,即这两个类都只提供了对字节或字节数组的读取方法。由于汉字在文件中占用两个字节,如果使用字节流,读取不好可能会出现乱码现象,此时采用字符流FileReader
类或FileWriter
类即可避免这种现象。FileReader
类和FileWriter
类分别对应了FilelnputStream
类和FileOutputStream
类。FileReader
类顺序地读取文件,只要不关闭流,每次调用read()
方法就顺序地读取源中其余的内容,直到源的末尾或流关闭
public static void main(String[] args) {
File file = new File("D:\\word.txt");
try {
FileWriter fileWriter = new FileWriter(file);
String amber = "amber";
fileWriter.write(amber);
fileWriter.close();
}catch (Exception e){
e.printStackTrace();
}
try {
FileReader fileReader = new FileReader(file);
char[] chars = new char[1024];
int read = fileReader.read(chars);
System.out.println(new String(chars, 0, read));
}catch (Exception e){
e.printStackTrace();
}
}
数据输入/输出流(DataInputStream
类与DataOutputStream
类)允许应用程序以与机器无关的方式从底层输入流中读取基本Java数据类型。也就是说,当读取一个数据时,不必再关心这个数值应当是哪种字节。DataInputStream
类与DataOutputStream
类的构造方法如下。
DataInputStream(InputStream in)
:使用指定的基础InputStream
对象创建一个DataInputStream
对象。DataOutputStream(OutputStream out)
:创建一个新的数据输出流,将数据写入指定基础输出流。DataOutputStream
类提供了将字符串、double
数据、int
数据、boolean
数据写入文件的方法。
其中,将字符串写入文件的方法有3种,分别是 writeBytes(String s)
、writeChars(String s)
、writeUTF(String s)
。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/78258.html