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. [Swift]LeetCode688. “马”在棋盘上的概率 | Knight Probability in Chessboard

    On an NxN chessboard, a knight starts at the r-th row and c-th column and attempts to make exactly K ...

  2. [Swift]LeetCode933. 最近的请求次数 | Number of Recent Calls

    Write a class RecentCounter to count recent requests. It has only one method: ping(int t), where t r ...

  3. TCP/IP 详解常用术语

    业务需要,最近看TCP/IP 这本书,专业名词太多了,总结一下,给后来着参考,直接使用. 后续会在读书时慢慢添加. ACK:(ACKnowledgment)TCP首部中的确认标志. ARP:地址解析协 ...

  4. Redis 设计与实现 (九)--Lua

    EVAL script numkeys key [key ...] arg [arg ...] script:     你的lua脚本 numkeys:  key的个数 key:           ...

  5. Qt创建分割窗口

    1.QT中QSplitter类可以用来灵活分割窗口,从而产生可用的布局,在以后进行界面布局很有用. 2.先看代码,这个分割窗口按顺序添加子窗口: #include "mainwindow.h ...

  6. iOS学习——Quartz2D学习之UIKit绘制

    iOS学习——Quartz2D学习之UIKit绘制 1.总述 在IOS中绘图技术主要包括:UIKit.Quartz 2D.Core Animation和OpenGL ES.其中Core Animati ...

  7. spring boot -spring data-redis

    //添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  8. beoplay(BO)耳机拒绝配对的解决方法

    最近买了个beoplay h4,但是在换了手机之后怎么也不能配对,问客服也不知道,后来找了好久才找到答案: 按住音量+  和 音量-  指示灯出现蓝色并闪烁时,手机搜索蓝牙就可以连接了

  9. .NET Core实战项目之CMS 第三章 入门篇-源码解析配置文件及依赖注入

    作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/9998021.html 写在前面 上篇文章我给大家讲解了ASP.NET Core的概念及为什么使用它,接着 ...

  10. Docker中运行EOS FOR MAC

    基本要求以及依赖 安装 docker for mac ➡️ https://www.docker.com/products/docker-desktop docker需要7GB+内存.电脑右上角doc ...