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. Linux 纯字符界面的玩法

    Linux 纯字符界面的用途 装逼必备 省资源,服务器一般不安装图形界面 图形界面崩溃后紧急救援 进入字符界面的正确方式 目前新的 Linux 发行版基本上都使用 Systemd 作为 init 程序 ...

  2. Spring 接口参数加密传输

    加密方式 AES spring jar 包 pom.xml配置(注意版本)         <dependency>             <groupId>org.spri ...

  3. Java面试题中常考的容易混淆的知识点区别

    以下是我收集的Java编程里各种区别,供Java学习爱好者参考,这些区别都是每次Java面试中常考的,大家好好掌握,如有失误请留言指出.想要获取Java详细全套学习资料请到上海尚学堂官网获取. 1.H ...

  4. SDL 开发实战(三):使用 SDL 绘制基本图形

    在上文 SDL 开发实战(二):SDL 2.0 核心 API 解析 我们讲解了SDL最核心的API,并结合Hello World代码了解了SDL渲染画面的基本原理. 本文我们来讲一下,如何使用SDL的 ...

  5. idea之debug

    [转载]原文地址:https://www.cnblogs.com/nihaorz/p/7613967.html 在Intellij IDEA中使用Debug Debug用来追踪代码的运行流程,通常在程 ...

  6. [Swift]LeetCode50. Pow(x, n) | Pow(x, n)

    Implement pow(x, n), which calculates x raised to the power n (xn). Example 1: Input: 2.00000, 10 Ou ...

  7. [Swift]LeetCode53. 最大子序和 | Maximum Subarray

    Given an integer array nums, find the contiguous subarray (containing at least one number) which has ...

  8. [Swift]LeetCode889. 根据前序和后序遍历构造二叉树 | Construct Binary Tree from Preorder and Postorder Traversal

    Return any binary tree that matches the given preorder and postorder traversals. Values in the trave ...

  9. 当用户管理系统遇上python和mongodb后……

    Overview: 环境 前言 效果图 mongdb安装 代码涉及知识点 关于windows的cmd下执行python文件显示中文乱码的问题 总结 0.环境 操作系统:Windows Python版本 ...

  10. 插入与归并(python)(原创)

    根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直到全部元素有序. 归并排序进行如下迭 ...