[关闭]
@EggGump 2018-08-25T20:55:41.000000Z 字数 2297 阅读 402

java file io

java


1、File

  1. File file = new File("d:/java/word.txt") ;
  2. if(file.exists() && !file.isDirectory()) {
  3. System.out.println(file.getName() + file.isHidden());
  4. file.delete() ;
  5. }
  6. else {
  7. file.createNewFile() ;
  8. }

2、FileInputStream FileOutputStream
针对字节流,读写汉字时有可能出现乱码。需要借助byte数组进行输入输出操作。

  1. File file = new File("d:/java/word.txt") ;
  2. FileOutputStream fos = new FileOutputStream(file) ;
  3. byte text[] = "东北大学".getBytes() ;
  4. fos.write(text);
  5. fos.close() ;
  6. FileInputStream fis = new FileInputStream(file); ;
  7. text = new byte[1024] ;
  8. int len = fis.read(text) ;
  9. fis.close();
  10. System.out.println(new String(text,0,len)) ;

该方法是新建文件,如果文件本来存在,也是删除再新建

3、FileReader类和FIleWriter类(针对字符流。不需要借助byte数组来操作,对于输入流借助char数组

  1. File file = new File("d:/java/word.txt") ;
  2. FileWriter out = new FileWriter(file) ;
  3. out.write("东北学");
  4. out.close();
  5. FileReader in = new FileReader(file) ;
  6. char[] text = new char[1024] ;
  7. int len = in.read(text) ;
  8. in.close();
  9. System.out.println(new String(text,0,len));

4、带缓存的输入输出流。缓存流为I/O流增加了内存缓冲区,是I/O的一种性能优化。BufferedInputStream与BufferedOutputStream

  1. File file = new File("d:/java/word.txt") ;
  2. FileWriter fw = new FileWriter(file) ;
  3. BufferedWriter bw = new BufferedWriter(fw) ;
  4. bw.write("东北大学 没落了");
  5. bw.newLine();
  6. bw.write("日了狗了");
  7. bw.flush();
  8. fw.close();
  9. bw.close();
  10. FileReader fr = new FileReader(file) ;
  11. BufferedReader br = new BufferedReader(fr) ;
  12. String s = null ;
  13. while((s = br.readLine()) != null) {
  14. System.out.println(s) ;
  15. }
  16. fr.close();
  17. br.close();

5、数据输入输出流。当读取一个数据时,不必再关心这个数值应当是什么字节。DataInputStream与DataOutputStream类。

  1. File file = new File("d:/java/word.txt") ;
  2. FileOutputStream fos = new FileOutputStream(file) ;
  3. DataOutputStream dos = new DataOutputStream(fos) ;
  4. dos.writeUTF("东北大学UTF") ;
  5. dos.writeChars("东北大学CHARS");
  6. dos.writeBytes("东北大学BTYES") ;
  7. fos.close();
  8. dos.close();
  9. FileInputStream fis = new FileInputStream(file) ;
  10. DataInputStream dis = new DataInputStream(fis) ;
  11. System.out.println(dis.readUTF()) ;
  12. fis.close();
  13. dis.close();

输出:东北大学UTF

6、压缩文件流
压缩:

  1. File file = new File("d:/java/word.zip") ;
  2. ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(file)) ;
  3. zos.putNextEntry(new ZipEntry("a/"));
  4. FileInputStream in = new FileInputStream(file) ;
  5. int b ;
  6. while((b = in.read()) != -1) {
  7. zos.write(b);
  8. }
  9. in.close();

结果:产生一个word.zip文件

解压:好吧,这个我没看懂是什么意思

  1. File file = new File("d:/java/word.zip") ;
  2. ZipInputStream zis = new ZipInputStream(new FileInputStream(file)) ;
  3. ZipEntry entry ;
  4. while((entry=zis.getNextEntry()) != null&&!entry.isDirectory() ) {
  5. File file2 = new File(entry.getName()) ;
  6. if(!file.exists()) {
  7. file.createNewFile() ;
  8. zis.closeEntry();
  9. }
  10. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注