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. react-native-upgrade-android

    React Native的版本升级插件(仅是android), react-native版本需要0.17.0及以上 如何安装 1.首先安装npm包 npm install react-native-u ...

  2. MS SQL计算最大公约数和最小公倍数函数

    /*求两个数的最大公约数*/ CREATE FUNCTION f_GetGys ( @num1 BIGINT , @num2 BIGINT ) RETURNS BIGINT AS BEGIN DECL ...

  3. python语法_模块_time_datetime_random

    模块:可以被公共调用的. time import time print(time.time()) 时间戳方式显示时间. time.sleep(3) 休眠3秒 time.clock() 计算cpu执行时 ...

  4. JavaEE开发之Spring中的依赖注入与AOP编程

    上篇博客我们系统的聊了<JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建>,并在之前的博客中我们聊了依赖注入的相关东西,并且使用Objective-C的R ...

  5. SVN和Git的功能和区别,尚学堂SVN和Git学习视频资料免费下载

    对于软件开发人员来说,版本控制系统再熟悉不过了,所谓版本控制系统就是软件项目开发过程中用于储存开发人员所写代码所有修订版本的软件.目前常见的版本控制系统分为集中式版本控制系统(SVN)和分布式版本控制 ...

  6. [Swift]LeetCode452. 用最少数量的箭引爆气球 | Minimum Number of Arrows to Burst Balloons

    There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided ...

  7. Python基础语法(三)

    Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...

  8. python网络-多线程(22)

    一.什么是线程 线程(英语:thread)是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.同一进程中的多条线程将共享该进程中的全部系统资源,一个进程可以有很多线程,每 ...

  9. 自定义圆形的ProgressBar

    1.自定义圆形的ProgressBar 效果图: 圆形ProgressBar的样式主要有以下几个,我们这里以progressBarStyleLarge为例进行样式的修改,其他的类似. <Prog ...

  10. Python爬虫入门教程 7-100 蜂鸟网图片爬取之二

    蜂鸟网图片--简介 今天玩点新鲜的,使用一个新库 aiohttp ,利用它提高咱爬虫的爬取速度. 安装模块常规套路 pip install aiohttp 运行之后等待,安装完毕,想要深造,那么官方文 ...