zoukankan      html  css  js  c++  java
  • java-文件读取

    1.利用递归读取文件

    (1)NotifyFolder.java

     1 package com.etc;
     2 import java.io.File;
     3 import java.io.IOException;
     4 import java.util.ArrayList;
     5 
     6 public class NotifyFolder {
     7     
     8     public ArrayList<File> readFolder(String path)throws IOException{
     9         
    10         ArrayList<File> fileList=new ArrayList<File>();
    11         File file=new File(path);
    12         //判断该文件是否为目录
    13         if(file.isDirectory()){
    14             //定义一个文件数组用于存放文件夹file下面的所有文件
    15             File[] files=file.listFiles();
    16             for(File file3: files){
    17                 //如果这个文件为目录
    18                 if(file3.isDirectory()){
    19                     //    System.out.println("文件夹路径:"+file3.getAbsolutePath());
    20                     //递归读文件夹
    21                     readFolder(file3.getAbsolutePath());
    22                 }
    23                 else
    24                     //普通文件则将其放入集合中
    25                     fileList.add(file3);
    26                 /*//获取文件路径
    27                     System.out.println("文件路径:"+file3.getAbsolutePath());*/
    28                 //获取文件名
    29                 System.out.println("文件名称:"+file3.getName());
    30             }
    31         }
    32         return fileList;
    33     }
    34 }

    2.直接读取某个文件或图片

    (2)ReadFile.java

     1 package com.etc;
     2 import java.awt.BorderLayout;
     3 import java.awt.Image;
     4 import java.io.BufferedInputStream;
     5 import java.io.File;
     6 import java.io.FileInputStream;
     7 import java.io.FileNotFoundException;
     8 import java.io.IOException;
     9 import java.io.InputStream;
    10 import java.net.URL;
    11 import javax.imageio.ImageIO;
    12 import javax.swing.ImageIcon;
    13 import javax.swing.JFrame;
    14 import javax.swing.JLabel;
    15 //文本类文件内容读出
    16 public class ReadFile {
    17     public void readTxtFile(String path) throws IOException{
    18         File file=new File(path);
    19         //判断文件是否已经存在,若不在则新建文件与之对应
    20         if(!file.exists()){
    21             file.createNewFile();
    22         }
    23         try {
    24             //获取源文件
    25             FileInputStream fi=new FileInputStream(file);
    26             //定义缓冲区,缓冲区大小与获取的文件大小一致,同时以byte数组存放防止出现乱码的情况
    27             byte[] by=new byte[fi.available()];
    28             fi.read(by);
    29             //关闭资源
    30             fi.close();
    31             //以字符串的形式打印出文件中的所有内容
    32             System.out.println(new String(by));
    33         } catch (FileNotFoundException e) {
    34 
    35             e.printStackTrace();
    36         } 
    37     }
    38     //图片内容读取并打印
    39     public void readImageFile(){
    40         Image image = null;
    41         try {
    42             //从本地文件读取
    43             File sourceimage = new File("E:/timg.jpg");
    44             image = ImageIO.read(sourceimage);
    45 
    46             //从输入流读取
    47             InputStream is = new BufferedInputStream(
    48                     new FileInputStream("E:/timg.jpg"));  
    49             image = ImageIO.read(is);
    50 
    51             /*//从网上获取图片内容写入image中然后读取出来
    52             URL url = new URL("http://www.javaworld.com/images/012407-tipsbox.jpg");
    53             image = ImageIO.read(url);*/
    54 
    55         } 
    56         catch (IOException e) {
    57 
    58         }
    59 
    60         //用一个窗口打印图片内容
    61         JFrame frame = new JFrame();
    62         JLabel label = new JLabel(new ImageIcon(image));
    63         frame.getContentPane().add(label, BorderLayout.CENTER);
    64         frame.pack();
    65         frame.setVisible(true); 
    66         //关闭窗口--退出调试
    67         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    68     }
    69 
    70 }

    3.测试类

     1 package com.etc;
     2 import java.io.IOException;
     3 
     4 public class Test {
     5     //测试类,测试输入文件源
     6     public static void main(String[] args) {
     7         NotifyFolder nf=new NotifyFolder ();
     8         try {
     9             nf.readFolder("F:/QQ");
    10         } catch (IOException e1) {
    11             e1.printStackTrace();
    12         }
    13         System.out.println("***************************");
    14         ReadFile rd=new ReadFile();
    15         try {
    16             rd.readTxtFile("F:/test.java");
    17             rd.readImageFile();
    18         } catch (IOException e) {
    19             e.printStackTrace();
    20         }
    21 
    22     }
    23 
    24 }

    效果截图:

  • 相关阅读:
    websocket协议
    vue组件之间的传值
    vue中非父子组件的传值bus的使用
    $.proxy的使用
    弹性盒模型display:flex
    箭头函数与普通函数的区别
    粘贴到Excel的图片总是有些轻微变形
    centos rhel 中文输入法的安装
    vi ,默认为 .asm .inc 采用nasm的语法高亮
    how-to-convert-ppk-key-to-openssh-key-under-linux
  • 原文地址:https://www.cnblogs.com/weekstart/p/10773645.html
Copyright © 2011-2022 走看看