其實你貼的代碼並沒有問題
② 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方法關閉,否則會一直處於打開狀態,直至程序停止,增加系統負擔。