java读取文件并输出_java读取txt文件并输出结果

该文章详细介绍了如何使用Java读取指定的TXT文件并解析其内容。首先,通过示例代码展示了如何读取单个TXT文件,并将制表符替换为逗号,然后按字段解析数据。接着,文章提供了读取文件夹下所有TXT文件并输出内容的方法。这些方法对于处理文本数据和文件操作具有实用价值。
摘要由CSDN通过智能技术生成

这篇文章主要介绍了java读取txt文件并输出结果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

描述:

1.java读取指定txt文件并解析

文件格式:

74bba472b33cc740801775b05a48d8f0.png

代码:

package com.thinkgem.wlw.modules.midea;

import java.io.*;

import java.util.ArrayList;

import java.util.List;

/**

* @Author: zhouhe

* @Date: 2019/6/19 8:48

*/

public class Test {

public static void main(String[] args) {

// 文件夹路径

String path = "D:\\input.txt";

try {

List scanListPath = readFile02(path);

// System.out.println(scanListPath);

for (int i = 0; i < scanListPath.size(); i++) {

String mytext = scanListPath.get(i);

//替换所有制表符

mytext = mytext.replaceAll("\t",",");

System.out.println(mytext);

//每一行都转化为新的数组,根据下标去判断参数值对应的参数是什么

String [] strArr= mytext.split(","); //注意分隔符是需要转译

for (int m = 0; m < strArr.length; m++) {

// System.out.println(strArr[m]);

switch(m){

case 0:

System.out.println("时间:"+strArr[m]);

break;

case 1:

System.out.println("甲烷:"+strArr[m]);

break;

case 2:

System.out.println("总烃:"+strArr[m]);

break;

case 3:

System.out.println("非甲烷总烃:"+strArr[m]);

break;

case 4:

System.out.println("氨气:"+strArr[m]);

break;

case 5:

System.out.println("硫化氢:"+strArr[m]);

break;

case 6:

System.out.println("氧气:"+strArr[m]);

break;

default:

break;

}

}

}

} catch (IOException e) {

System.out.println("有异常,无法读取!!!");

}

}

/**

* 读取一个文本 一行一行读取

*

* @param path

* @return

* @throws IOException

*/

public static List readFile02(String path) throws IOException {

// 使用一个字符串集合来存储文本中的路径 ,也可用String []数组

List list = new ArrayList();

FileInputStream fis = new FileInputStream(path);

// 防止路径乱码 如果utf-8 乱码 改GBK eclipse里创建的txt 用UTF-8,在电脑上自己创建的txt 用GBK

InputStreamReader isr = new InputStreamReader(fis, "UTF-8");

BufferedReader br = new BufferedReader(isr);

String line = "";

while ((line = br.readLine()) != null) {

// 如果 t x t文件里的路径 不包含---字符串 这里是对里面的内容进行一个筛选

if (line.lastIndexOf("---") < 0) {

list.add(line);

}

}

br.close();

isr.close();

fis.close();

return list;

}

}

结果:

6c6c5745f4fcab69f6179ea11094ee82.png

2.java读取指定文件夹下的所有txt文件并输出内容(我这里一个文件夹下面有 2 个txt文件):

887daad71a7191254e7f12a76ba48bf0.png

代码:

package com.thinkgem.wlw.modules.midea;

import java.io.*;

/**

* @Author zhouhe

* @Date 2019/10/10 13:10

*/

public class Test2 {

/**新建一个类把下面代码放进去,注意要设置basePath(你要读取的文件夹),读取和写入的方法也都写好了.你可以根据自己的需求掉用就行了**/

static String basePath="D:\\测试";

/**

* 查找文件夹下所有符合csv的文件

*

* @param dir 要查找的文件夹对象

* */

public static void findFile(File dir) throws IOException {

File[] dirFiles = dir.listFiles();

for(File temp : dirFiles){

if(!temp.isFile()){

findFile(temp);

}

//查找指定的文件

if(temp.isFile() && temp.getAbsolutePath().endsWith(".txt") ){

//获取文件路径,包含文件名

String filePath = temp.getAbsolutePath();

//获取文件名

String fileName = temp.getName();

System.out.println(temp.isFile() + " " + temp.getAbsolutePath());

readFileContent(temp);

}

}

}

/**

* @param file 要读取的文件对象

* @return 返回文件的内容

* */

public static String readFileContent(File file) throws IOException{

FileReader fr = new FileReader(file);

BufferedReader br = new BufferedReader(fr);

StringBuffer sb = new StringBuffer();

while(br.ready()){

// sb.append(br.readLine());

System.out.println(br.readLine());

}

System.out.println(sb.toString());

return sb.toString();

}

/**

* @param file 要写入的文件对象

* @param content 要写入的文件内容

* */

public static void writeFileContent(File file,String content) throws IOException{

FileWriter fw = new FileWriter(file);

fw.write(content);

fw.flush();

fw.close();

}

public static void main(String[] args) {

try {

findFile(new File(basePath));

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

结果:

1913ec9789cacd0149d30602324109c7.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值