Java中的I/O小结

  可以从其中读入字节序列的对象称为输入流,可以向其中写入字节序列的被称为输出流。抽象类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);//删除文件不会报错,还会删除空文件夹

 

上一篇:表现层(jsp)、持久层(dao)、业务层(逻辑层、service)


下一篇:gcc-glibc如何实现线程私有变量