1.利用递归读取文件

(1)NotifyFolder.java

 package com.etc;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList; public class NotifyFolder { public ArrayList<File> readFolder(String path)throws IOException{ ArrayList<File> fileList=new ArrayList<File>();
File file=new File(path);
//判断该文件是否为目录
if(file.isDirectory()){
//定义一个文件数组用于存放文件夹file下面的所有文件
File[] files=file.listFiles();
for(File file3: files){
//如果这个文件为目录
if(file3.isDirectory()){
// System.out.println("文件夹路径:"+file3.getAbsolutePath());
//递归读文件夹
readFolder(file3.getAbsolutePath());
}
else
//普通文件则将其放入集合中
fileList.add(file3);
/*//获取文件路径
System.out.println("文件路径:"+file3.getAbsolutePath());*/
//获取文件名
System.out.println("文件名称:"+file3.getName());
}
}
return fileList;
}
}

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

(2)ReadFile.java

 package com.etc;
import java.awt.BorderLayout;
import java.awt.Image;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
//文本类文件内容读出
public class ReadFile {
public void readTxtFile(String path) throws IOException{
File file=new File(path);
//判断文件是否已经存在,若不在则新建文件与之对应
if(!file.exists()){
file.createNewFile();
}
try {
//获取源文件
FileInputStream fi=new FileInputStream(file);
//定义缓冲区,缓冲区大小与获取的文件大小一致,同时以byte数组存放防止出现乱码的情况
byte[] by=new byte[fi.available()];
fi.read(by);
//关闭资源
fi.close();
//以字符串的形式打印出文件中的所有内容
System.out.println(new String(by));
} catch (FileNotFoundException e) { e.printStackTrace();
}
}
//图片内容读取并打印
public void readImageFile(){
Image image = null;
try {
//从本地文件读取
File sourceimage = new File("E:/timg.jpg");
image = ImageIO.read(sourceimage); //从输入流读取
InputStream is = new BufferedInputStream(
new FileInputStream("E:/timg.jpg"));
image = ImageIO.read(is); /*//从网上获取图片内容写入image中然后读取出来
URL url = new URL("http://www.javaworld.com/images/012407-tipsbox.jpg");
image = ImageIO.read(url);*/ }
catch (IOException e) { } //用一个窗口打印图片内容
JFrame frame = new JFrame();
JLabel label = new JLabel(new ImageIcon(image));
frame.getContentPane().add(label, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
//关闭窗口--退出调试
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} }

3.测试类

 package com.etc;
import java.io.IOException; public class Test {
//测试类,测试输入文件源
public static void main(String[] args) {
NotifyFolder nf=new NotifyFolder ();
try {
nf.readFolder("F:/QQ");
} catch (IOException e1) {
e1.printStackTrace();
}
System.out.println("***************************");
ReadFile rd=new ReadFile();
try {
rd.readTxtFile("F:/test.java");
rd.readImageFile();
} catch (IOException e) {
e.printStackTrace();
} } }

效果截图:

java-文件读取的更多相关文章

  1. JAVA文件读取FileReader

    JAVA文件读取FileReader 导包import java.io.FileReader 创建构造方法public FileReader(String filename),参数是文件的路径及文件名 ...

  2. Java文件读取

    package a.ab; import java.io.*; public class FileWrite { public static void main(String[] args) { Fi ...

  3. java文件读取与写入

    package com.myjava; import java.io.*; import java.util.ArrayList; import java.util.Collections; impo ...

  4. java 文件读取大全

    1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile {     /**      * 以字节为单位读取文件,常用 ...

  5. 【转】java 文件 读取目录下的所有文件(包括子目录)

    转自:http://www.cnblogs.com/pricks/archive/2009/11/11/1601044.html import java.io.File; import java.io ...

  6. java 文件读取的一些方法

    web项目读取日志文件 //得到路径 String appPath = filterConfig.getServletContext().getRealPath("/"); // ...

  7. JAVA 文件读取写入后 md5值不变的方法

    假如我们想把某文件读入 StringBuffer 并写入新文件,新文件md5值需要保持不变(写入新文件后保证和源文件一模一样), 我们就需要在操作 StringBuffer 时附加换行符: Strin ...

  8. java 文件读取写入

    public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. */ public static void readFileB ...

  9. java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  10. 五种方式让你在java中读取properties文件内容不再是难题

    一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...

随机推荐

  1. Conda命令指标

    一.Conda相关指令 # 查看当前环境下已安装的包 conda list # 查看某个指定环境的已安装包 conda list -n tensorflow # 查找package信息 conda s ...

  2. unittest测试套件

    测试套件就是测试集,测试集是测试用例的集合. a.按用例顺序执行(addtest) 当addtest与unittest的测试规则冲突时,仍然按照ASCII码的顺序执行. import unittest ...

  3. H5音乐自动播放ios//禁止安卓手机图片点击

    定义音乐按钮 <div id="music-btn" class="o-play" style="width: 24px; height: 24 ...

  4. svn错误:更新源码出现校验和不匹配问题

    svn 的文本校验和不匹配: 最近在更新自动化源代码的时候出现了一个错误:svn: Checksum mismatch while updating.... 查了下google,原来是在更新源码出现校 ...

  5. 基础:新建个maven项目

    首先在电脑上配置好Maven环境 第一步:在Eclipse中选择创建Maven Project Next Next Finish 创建好后项目结构如下: 第二步:讲项目转为Web项目,右键项目点击pr ...

  6. Mysql索引最左匹配原则

    先来看个例子: 1. 示例1:假设有如下的一张表: DROP TABLE IF EXISTS testTable; CREATE TABLE testTable ( ID BIGINT NOT NUL ...

  7. [Swift]LeetCode314. 二叉树的竖直遍历 $ Binary Tree Vertical Order Traversal

    Given a binary tree, return the vertical order traversal of its nodes' values. (ie, from top to bott ...

  8. [Swift]LeetCode450. 删除二叉搜索树中的节点 | Delete Node in a BST

    Given a root node reference of a BST and a key, delete the node with the given key in the BST. Retur ...

  9. [Swift]LeetCode645. 错误的集合 | Set Mismatch

    The set S originally contains numbers from 1 to n. But unfortunately, due to the data error, one of ...

  10. oracle 合并多个sys_refcursor

    一.背景 在数据开发中,有时你需要合并两个动态游标sys_refcursor. 开发一个存储过程PROC_A,这个过程业务逻辑相当复杂,代码篇幅较长.一段时间后要开发一个PROC_B,要用PROC_A ...