在Java中读取TXT文件内容,可以使用FileInputStream类读取文件,再通过 InputStreamReader类将其转换为可读取的字符流,接着使用BufferedReader类进行逐行读取。具体代码如下:
首先创建FileInputStream对象,使用File类指定文件路径,例如:
FileInputStream fis = new FileInputStream(new File(path));
接着,创建一个InputStreamReader对象,将FileInputStream作为参数传递给它:
InputStreamReader isr = new InputStreamReader(fis);
然后,利用BufferedReader对字符流进行处理:
BufferedReader br = new BufferedReader(isr);
为了存储每一行读取的内容,我们定义一个字符串变量str:
String str = "";
使用while循环来读取文件中的每一行,直到没有更多的行为止。在循环内部,使用readLine()方法读取一行,并将其赋值给str变量:
while((str=br.readLine())!=null){
System.out.println(str);
}
这个循环会持续执行,直到读取到文件的最后一行。每次循环中,readLine()方法会读取一行文本,并将其存储在str变量中,然后将str的值打印出来。当readLine()返回null时,表示文件读取完毕,循环结束。
需要注意的是,使用完这些对象后,应该确保关闭它们以释放资源。可以使用try-with-resources语句来自动完成关闭操作,如下所示:
try (FileInputStream fis = new FileInputStream(new File(path));
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);) {
String str = "";
while((str=br.readLine())!=null){
System.out.println(str);
}
}
这样可以确保在读取文件过程中,资源得到及时释放,避免资源泄露。
以上就是使用Java读取TXT文件内容的完整步骤,包括创建文件流对象、读取文件内容以及处理读取到的数据。
Ⅱ Java读入一个txt文件,并且从txt文件中的某一个单词开始读里面的数字
publicstaticvoidmain(String[]args){
Filefile=newFile("D:/123456.txt");
BufferedReaderreader=null;
StringtempString=null;
intline=1;
try{
System.out.println("以行为单位读取文件内容,一次读一整行:");
StringBuffersb=newStringBuffer(0);
reader=newBufferedReader(newFileReader(file));
while((tempString=reader.readLine())!=null){
System.out.println("Line"+line+":"+tempString);
intstart=tempString.indexOf("begin");
intend=tempString.indexOf("end");
if(start>-1){
if(end>-1){
sb.append(tempString.substring(start+"begin".length(),end));
}else{
sb.append(tempString.substring(tempString.indexOf("begin"),tempString.length()));
}
}if(start>-1&&end==-1){
sb.append(tempString.substring(0,end));
}line++;
}System.out.println(sb.toString());
reader.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
}
运行结果:
以行为单位读取文件内容,一次读一整行:
Line1:
123213okok12412551
Ⅲ java 读取excel文件 我需要去读到每一行的每一个数据。 然后操作一番。 最后生成一个XML文件
jxl
package com.cj.fw.xml;
import java.io.File;import java.io.IOException;
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;
import jxl.Workbook;import jxl.WorkbookSettings;import jxl.read.biff.BiffException;import jxl.write.Label;import jxl.write.WritableCell;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import com.cj.pro.domain.Drilling;
public class DrillingExport {
// 模板文件位置 private final static String TempletFile = "/attachments/template/emergencydrill.xls"; // 数据 private Drilling log = null; private String leixing=null;
/** * 构造函数 */ public DrillingExport( Drilling log,String leixing) { this.log=log; this.leixing=leixing; }
/** * 安全培训日志导出表 * @throws IOException * @throws BiffException * @throws WriteException */ public boolean export(HttpServletRequest request,HttpServletResponse response) throws BiffException, IOException, WriteException { String fileName=""; if("1".equals(leixing)){ fileName="应急演练信息导出表.xls"; }else if("2".equals(leixing)){ fileName="消防演练演练信息导出表.xls"; } response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-type","application/file"); response.setHeader("Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" )); File file = new File(request.getSession().getServletContext().getRealPath(TempletFile)); WorkbookSettings workbookSettings=new WorkbookSettings(); workbookSettings.setEncoding("ISO-8859-1"); //关键代码,解决中文乱码 Workbook workbook = Workbook.getWorkbook(file,workbookSettings); WritableWorkbook wwb = Workbook.createWorkbook(response.getOutputStream(), workbook); WritableSheet ws = wwb.getSheet(0); WritableCell cell = null; if("1".equals(leixing)){ cell = new Label(1,0,"应急演练单",ws.getCell(1,0).getCellFormat()); ws.addCell(cell); }else if("2".equals(leixing)){ cell = new Label(1,0,"消防演练单",ws.getCell(1,0).getCellFormat()); ws.addCell(cell); } if(log!=null){ cell = new Label(2,1,log.getRiqi(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(5,1,log.getDidian(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(2,2,log.getMingcheng(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(5,2,log.getZudanwei(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(2,3,log.getJiaoben(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(2,4,log.getBeizhu(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); }else{ cell = new Label(2,4,"导出出错",ws.getCell(1,0).getCellFormat()); ws.addCell(cell); } //合计小写 wwb.write(); wwb.close(); workbook.close(); return true; }
}
上面的是导出 你可以变变
Ⅳ java读取文件每一行
java循环问题,读文件的每一行可以通过BufferedReader流的形式进行读取,之后循环输出每一行的内容。
BufferedReaderbre=null;
try{
Stringfile="D:/test/test.txt";
bre=newBufferedReader(newFileReader(file));//file为文件的路径+文件名称+文件后缀
while((str=bre.readLine())!=null)//●判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容
};
备注:流用完之后必须close掉,如上面的就应该是:bre.close();
Java中如何一行行地读文件
import?java.io.BufferedReader;
import?java.io.File;
import?java.io.FileReader;
import?java.io.IOException;
import?java.io.InputStreamReader;
public?class?ReadTest?{
public?static?void?main(String[]?args)?{
//?读控制台输入的文字!
BufferedReader?br?=?null;
String?str?=?null;
try?{
br?=?new?BufferedReader(new?InputStreamReader(System.in));
while?(true)?{
str?=?br.readLine();
if?(str.equals("886"))
break;
System.out.println(str);
}
//?读文本文件..
br?=?new?BufferedReader(new?FileReader(new?File("C:\Users\Administrator\Desktop\地址.txt")));
for?(str?=?br.readLine();?str?!=?null;?str?=?br.readLine())?{
//打印你读的文本数据!
System.out.println(str);
}
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
}
核心就是:readLine()方法,一行一行的读!
java怎么读入文件,并逐行输出java读入文件,并逐行输出,先在D://home建立个文件夹,然后创建一个a.txt文件,然后编辑文件,文本编辑的编码是utf-8,然后用流逐行读取输出,如下:
import?java.io.BufferedInputStream;
import?java.io.BufferedReader;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.InputStream;
import?java.io.InputStreamReader;
public?class?TestC?{
public?static?void?main(String[]?args){
//获取要读取的文件
?File?readFile=new?File("D://home/a.txt");
?//输入IO流声明
????????InputStream?in=null;
????????InputStreamReader?ir=null;
????????BufferedReader?br=null;
????????
????????try?{
????????//用流读取文件
in=new?BufferedInputStream(new?FileInputStream(readFile));
//如果你文件已utf-8编码的就按这个编码来读取,不然又中文会读取到乱码
ir=new?InputStreamReader(in,"utf-8");
//字符输入流中读取文本,这样可以一行一行读取
br=new?BufferedReader(ir);
String?line="";
//一行一行读取
while((line=br.readLine())!=null){
System.out.println(line);
}
????????}?catch?(Exception?e)?{
e.printStackTrace();
}finally{
//一定要关闭流,倒序关闭
try?{
if(br!=null){
br.close();
}
if(ir!=null){
ir.close();
}
if(in!=null){
in.close();
}
}?catch?(Exception?e2)?{
}
}
????
}
}
结果:
helloworld
您好
123456
java读取txt文件每一行多少个字节import?java.io.File;
import?java.io.RandomAccessFile;
/**
?*?2016年8月31日下午7:00:37
?*?
?*?@author?3306?TODO?计算字节数
?*
?*/
public?class?FileUtil?{
????public?static?void?main(String[]?args)?{
????????String?filePath?=?"d:/test.txt";//?d盘必须存在test.txt文件
????????readEachLine(filePath);
????}
????/**
?????*?打印文件每一行的字节数
?????*?
?????*?@param?filePath
?????*????????????文件路径
?????*/
????private?static?void?readEachLine(String?filePath)?{
????????try?{
????????????File?file?=?new?File(filePath);
????????????if?(file.exists())?{//?文件存在
????????????????RandomAccessFile?accessFile?=?new?RandomAccessFile(file,?"r");//?只赋予读的权限
????????????????String?line?=?"";
????????????????long?lineIndex?=?1;
????????????????while?(null?!=?(line?=?accessFile.readLine()))?{
????????????????????System.out.println("line"?+?(lineIndex++)?+?":?"?+?line.getBytes().length);//?打印行号和字节数
????????????????}
????????????????accessFile.close();
????????????}
????????}?catch?(Exception?e)?{
????????????e.printStackTrace();
????????}
????}
}
Ⅳ java 读取csv文件里指定行列的值,比如读取第三行第二列的值。
import java.io.BufferedReader;
import java.io.FileReader;
public class Test {
public void test(int row,int col){
try {
BufferedReader reader = new BufferedReader(new FileReader("C:\a.csv"));//换成你的文件名
// reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
String line = null;
int index=0;
while((line=reader.readLine())!=null){
String item[] = line.split(" ");//CSV格式文件为逗号分隔符文件,这里根据逗号切分
if(index==row-1){
if(item.length>=col-1){
String last = item[col-1];//这就是你要的数据了
System.out.println(last);
}
}
//int value = Integer.parseInt(last);//如果是数值,可以转化为数值
index++;
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
Test test = new Test();
test.test(3, 2);
}
}
你的数据格式有问题,空格的个数不确定,没办法每行用空格分隔。以下是我调整后的数据格式每行的数据以一个空格分隔,test方法传入的参数一次是,行,列:
1电机1
2WBS2
3PID3
4CP
5社供出
6原価実绩
7社供WC
8外注费
9直材费
10自家制品
11直経费
12その他
13注残
14注残