最简单的方法,直接文件中把所有内容都读取到一个String字符变量中,然后使用正则分割,也就是str.split("\n");他的返回值就是一个数组(字符数组)。
2. java根据文件名 读取文本文件的内容逐行显示到JTextArea里
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容版,之后将内容增加到JTextArea。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获权取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
JTextArea.add(str);//此处将内容写入到JTextArea即可
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
3. java中用scanner逐行读取文件,但某一行的数据太大,可以达到上千万个字符
如果是这样的话,不建议通过scanner来读取那么大量的字符数,建议您把原本要输入的数据存内储到一个文件中,容然后scanner读取的只是一个文件路径,然后在你的程序中来解析这个文件的数据即可,这样也好维护好扩展,不至于在命令行下输入一大堆东西,有时候都搞不清楚了,而且你直接输入命令行,还会出现各种问题,假设你的数据中包含空格什么的,会被拆分成多个,总之这种做法是极其不推荐的,希望你能考虑使用我上面提到的方法试试。
4. 用JAVA把2个TXT文档逐行进行比较
如果2个文件编码相同...下面的程序就应该没问题了...如果编码不同....呵呵....那就需要先知道编码了....
package my.code;
import java.io.BufferedReader;
import java.io.FileReader;
import java.nio.charset.Charset;
public class CompareTXTFile {
private String txtfile1 = "D:/1.txt";
private String txtfile2 = "D:/2.txt";
private String txtfile1_encode = "UTF-8";
private String txtfile2_encode = "UTF-8";
public CompareTXTFile() {
try {
run();
} catch (Exception e) {
e.printStackTrace();
}
}
private void run() throws Exception {
BufferedReader in1 = new BufferedReader(new FileReader(txtfile1));
BufferedReader in2 = new BufferedReader(new FileReader(txtfile2));
String str1 = "", str2 = "";
int i = 0;
while (true) {
i++;
str1 = in1.readLine();
str2 = in2.readLine();
if (str1 == null || str2 == null)
break;
str1 = new String(str1.getBytes(), Charset.forName(txtfile1_encode));
str2 = new String(str2.getBytes(), Charset.forName(txtfile2_encode));
if (!str1.equals(str2)) {
System.out.println("在第" + i + "行,2个文件不对应");
}
}
}
public static void main(String[] args) {
new CompareTXTFile();
}
}
5. java逐行分析text文件
||
publicstaticvoidreadTxtFile(StringfilePath){
try{
Stringencoding="GBK";
Filefile=newFile(filePath);
if(file.isFile()&&file.exists()){//判断文件是否存在
InputStreamReaderread=newInputStreamReader(
newFileInputStream(file),encoding);//考虑到编码格式
BufferedReaderbufferedReader=newBufferedReader(read);
StringlineTxt=null;
while((lineTxt=bufferedReader.readLine())!=null){
System.out.println(lineTxt.split("|||||||||||||")[0].split("|")[0]);
System.out.println(lineTxt.split("|||||||||||||")[0].split("|")[1]);
System.out.println(lineTxt.split("|||||||||||||")[0].split("|")[2].replace("|||||||||||||",""));
}
}
read.close();
}else{
System.out.println("找不到指定的文件");
}
}catch(Exceptione){
System.out.println("读取文件内容出错");
e.printStackTrace();
}
}
6. java怎么读入文件,并逐行输出
java读入文件,并逐行输出,先在D://home建立个文件夹,然后创建一个a.txt文件,然后编辑文件,文本编辑的编码是utf-8,然后用流逐行读取输出,如下:
importjava.io.BufferedInputStream;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStream;
importjava.io.InputStreamReader;
publicclassTestC{
publicstaticvoidmain(String[]args){
//获取要读取的文件
FilereadFile=newFile("D://home/a.txt");
//输入IO流声明
InputStreamin=null;
InputStreamReaderir=null;
BufferedReaderbr=null;
try{
//用流读取文件
in=newBufferedInputStream(newFileInputStream(readFile));
//如果你文件已utf-8编码的就按这个编码来读取,不然又中文会读取到乱码
ir=newInputStreamReader(in,"utf-8");
//字符输入流中读取文本,这样可以一行一行读取
br= newBufferedReader(ir);
Stringline="";
//一行一行读取
while((line=br.readLine())!=null){
System.out.println(line);
}
}catch(Exceptione){
e.printStackTrace();
}finally{
//一定要关闭流,倒序关闭
try{
if(br!=null){
br.close();
}
if(ir!=null){
ir.close();
}
if(in!=null){
in.close();
}
}catch(Exceptione2){
}
}
}
}
结果:
helloworld
您好
123456
7. java编程:从一个名为file的文件中逐行读取然后将读取的内容放进另一个文件file1中。
/**
* 以行为单位读取文件,常用于读面向行的格式化文件
*
* @param fileName
* 文件名
*/
public static void readFileByLines(String fileName) {
file = new File(fileName);
BufferedReader reader = null;
try {
System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
// 显示行号
System.out.println("line " + line + ": " + tempString);
line++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
}
/**
* 文件写入
*
* @param filePath 路径名称
* @param sb 要写入的字符
*/
public void writeFromBuffer(String filePath, String sb)throws IOException {
File file = new File(filePath);
FileWriter fw;
try {
fw = new FileWriter(file);
if (sb.toString() != null && !"".equals(sb.toString())) {
fw.write(sb.toString());
}
fw.close();
} catch (IOException e) {
throw new IOException("文件写入异常!请检查路径名是否正确!");
}
}
自己组织一下,读取的数据可以放在stringbuffer里然后在传给写入方法