Java文件和流 基本文件格式 在Java 中,一切文件皆是流。
以字节为基础的流:输出或者输入的数据是二进制格式的。
以字符为基础的流:输出或者输入的数据是字符串序列,每个字符占2字节。
常用类
Path接口:用来存放文件或者文件夹的地址
Paths类:利用静态方法来获取一个Path对象
Files类:提供静态方法来处理文件和文件夹
DirectoryStream接口:允许程序遍历文件夹内容
InputStreamReader类:读取器,用于读取某个流中的数据
FileInputStream类:将一个文件打开为流
路径相关操作
1 2 3 4 Path path = Paths.get(input.nextLine()); path.getFileName(); path.isAbsolute(); path.toAbsolutePath();
文件相关操作
1 2 3 4 5 6 Files.exists(path); Files.isDirectory(path); Files.getLastModifiedTime(path); Files.size(path); DirectoryStream<Path> directoryStream = Files.newDirectoryStream(path);
用于将数据输出到指定的位置
用法如下:
1 2 3 Formatter output = new Formatter (String); output.format(format, ...args); output.close();
文件结束标志:
Linux:< Enter >< Ctrl >d
Windows: < Ctrl > z
Scanner类 从指定位置中读取数据到内存中
1 2 3 4 5 6 Scanner input = new Scanner (Path); input.hasNext(); input.nextInt(); input.next(); input.nextLine(); input.close();
1 2 3 4 InputStreamReader reader = new InputStreamReader (FileInputStream("test.c" )); reader.read(); reader.read(cbuf, offset, length); reader.ready();
对象序列化 Java可以将对象直接存储在文件中,然后直接从此类文件读取内容到对象内。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class ClassName implements Serializable ; ObjectOutputStream output = new ObjectOutputStream ( Files.newOutputStream(Paths.get(String fileName))); output.writeObject(objectName); ObjectInputStream input = new ObjectInputStream ( Files.newInputStream(Paths.get(fileName)));myObject objectName = (myObject)input.readObject();