其实你贴的代码并没有问题
② java中如何读取文件中特定行的内容
packagecom.lwj.demo;
importjava.io.*;
{
publicstaticvoidmain(String[]args)throwsException{
RandomAccessFilefile=newRandomAccessFile("file","rw");
//以下向file文件中写数据
file.writeInt(20);//占4个字节
file.writeDouble(8.236598);//占8个字节
file.writeUTF("这是一个UTF字符串");//这个长度写在当前文件指针的前两个字节处,可用readShort()读取
file.writeBoolean(true);//占1个字节
file.writeShort(395);//占2个字节
file.writeLong(2325451l);//占8个字节
file.writeUTF("又是一个UTF字符串");
file.writeFloat(35.5f);//占4个字节
file.writeChar('a');//占2个字节
file.seek(0);//把文件指针位置设置到文件起始处
//以下从file文件中读数据,要注意文件指针的位置
System.out.println("——————从file文件指定位置读数据——————");
System.out.println(file.readInt());
System.out.println(file.readDouble());
System.out.println(file.readUTF());
file.skipBytes(3);//将文件指针跳过3个字节,本例中即跳过了一个boolean值和short值。
System.out.println(file.readLong());
file.skipBytes(file.readShort());//跳过文件中“又是一个UTF字符串”所占字节,注意readShort()方法会移动文件指针,所以不用加2。
System.out.println(file.readFloat());
}
}
③ Java中如何一行行地读文件
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
publicclassReadTest{
publicstaticvoidmain(String[]args){
//读控制台输入的文字!
BufferedReaderbr=null;
Stringstr=null;
try{
br=newBufferedReader(newInputStreamReader(System.in));
while(true){
str=br.readLine();
if(str.equals("886"))
break;
System.out.println(str);
}
//读文本文件..
br=newBufferedReader(newFileReader(newFile("C:\Users\Administrator\Desktop\地址.txt")));
for(str=br.readLine();str!=null;str=br.readLine()){
//打印你读的文本数据!
System.out.println(str);
}
}catch(IOExceptione){
e.printStackTrace();
}
}
}
核心就是:readLine()方法,一行一行的读!
④ Java中如何高效的读取大文件
读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:
Files.readLines(new File(path), Charsets.UTF_8); FileUtils.readLines(new File(path));
这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致程序抛出OutOfMemoryError 异常。
⑤ java如何读取指定行的数据
读取文件指定行要用到类LineNumberReader,它是跟踪行号的缓冲字符输入流,其基类是BufferedReader。。它有两个构造方法:
public LineNumberReader(Reader in)
使用默认输入缓冲区的大小创建新的行编号 reader,默认输入缓冲区的大小为8096个字节。
pulbic LineNumberReader(Reader in,int size)
创建新的行编号 reader,将字符读入给定大小的缓冲区。
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
public class ReadSelectedLine{
/**
* 读取文件指定行。
*/
public static void main(String[] args) throws IOException {
// 指定读取的行号
int lineNumber = 12;
// 读取文件
File sourceFile = new
File("src/Chapter08/ReadSelectedLine.java");
// 读取指定的行
readAppointedLineNumber(sourceFile, lineNumber);
// 获取文件的内容的总行数
System.out.println(getTotalLines(sourceFile));
}
// 读取文件指定行。
static void readAppointedLineNumber(File sourceFile, int lineNumber)
throws IOException {
FileReader in = new FileReader(sourceFile);
LineNumberReader reader = new LineNumberReader(in);
String s = reader.readLine();
if (lineNumber < 0 || lineNumber > getTotalLines(sourceFile)) {
System.out.println("不在文件的行数范围之内。");
}
{
while (s != null) {
System.out.println("当前行号为:"
+ reader.getLineNumber());
reader.setLineNumber(20);
System.out.println("更改后行号为:"
+ reader.getLineNumber());
System.out.println(s);
System.exit(0);
s = reader.readLine();
}
}
reader.close();
in.close();
}
// 文件内容的总行数。
static int getTotalLines(File file) throws IOException {
FileReader in = new FileReader(file);
LineNumberReader reader = new LineNumberReader(in);
String s = reader.readLine();
int lines = 0;
while (s != null) {
lines++;
s = reader.readLine();
}
reader.close();
in.close();
return lines;
}
}
⑥ java怎么读取txt文件的行数
importjava.io.File;
importjava.io.RandomAccessFile;
/**
*读取文档的第二行内容
*
*@author33062017年3月21日
*@see
*@since1.0
*/
publicclassCountLine{
/*
*读取文件绝对路径
*/
privatestaticStringfilePath="d:/cms.sql";
publicstaticvoidmain(String[]args){
longline=readLine(filePath);
System.out.println(line);
}
/**
*读取文件行数
*
*@parampath
*文件路径
*@returnlong
*/
publicstaticlongreadLine(Stringpath){
longindex=0;
try{
RandomAccessFilefile=newRandomAccessFile(newFile(path),"r");
while(null!=file.readLine()){
index++;
}
file.close();
}catch(Exceptione){
e.printStackTrace();
}
returnindex;
}
}
⑦ Java怎么读取文件的任意行
java中没有指定行的方法。
只能挨个读取。如果你想快速提取。而且文件又不是很大的话,就用LIST吧。
⑧ java读写文件指定行的问题
读写是两个不同的分支,通常都是分开单独使用的,在读取到每行内容后,通过特定的条件判断即可获取到应用的行内容,之后进行输出即可。
举例:
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容,此处如果增加必要的条件,就可以货到的指定的内容
};
可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。