可以从其中读入字节序列的对象称为输入流,可以向其中写入字节序列的被称为输出流。抽象类InputStream和OutpurStream构成I/O的结构层次基础。
在java中某些输入流可以从外部获取信息,如FileInputStream(但是不能进行数据类型的转换),某些输入流可以进行数据类型的转换,如DataInputStream(但是不能从外部或者数据)。使用DataInputStream时,DataInputStream input =new DataInputStream(一个有数据输入流的对象);
PushbackInputStream类:当多个输入流连接在一起时,你需要预览下一个字节时,查看是否是你想要的值,可以使用此类。
把文本写的文件中
PrintWriter out = new PrintWriter("demo.txt", "utf-8"); out.println("this is my first PrintWriter!!!"); out.close();
操作文件
使用Path接口获取文件
Path path=Paths.get(“demo.txt”);
使用Files类读取信息
Byte[] bytes=Files.readAllBytes(path); String s=new String(bytes,”utf-8”);//把字符数组转化为字符串
List<String> list = Files.getBytesLines(path);
以上方式适合处理中,长度的文件。若文件比较大时,使用一下方式;
InputStream inputStream = Files.newInputStream(path); OutputStream outputStream = Files.newOutputStream(path); BufferedReader bufferedReader = Files.newBufferedReader(path); BufferedWriter bufferedWriter = Files.newBufferedWriter(path);
创建一个文件夹,只有最后一个目录不存在
Path path = Paths.get("test.txt"); Path directory = Files.createDirectory(path);
创建一个文件夹,中间路径可以不存在,会一并创建
Path path = Paths.get("te\\st.txt"); Path directories = Files.createDirectories(path);
复制,移动,删除文件
Files.copy(fromPath,toPath); Files.move(fromPath,toPath); Files.delete(path);//当路径不存在时会报错 Files.deleteIfExists(path);//删除文件不会报错,还会删除空文件夹