當前位置:首頁 » 編程語言 » java行讀取

java行讀取

發布時間: 2022-06-10 05:19:35

java 按行讀取一個文件,存在字元串數組里,一個元素對應一行,再將這個數組按行輸出到一個新的文件里

java 按行讀取一個文件,存在字元串數組里,一個元素對應一行,再將這個數組按行輸出到一個新的文件里,代碼如下:

packagefoo;

importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileInputStream;

importjava.io.FileOutputStream;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.io.OutputStreamWriter;
importjava.util.ArrayList;
importjava.util.List;

/**
*Helloworld!
*
*/
publicclassApp
{
publicstaticvoidmain(String[]args)
{
FilereadFile=newFile("D://home/a.txt");
InputStreamin=null;
InputStreamReaderir=null;
BufferedReaderbr=null;

OutputStreamout=null;
OutputStreamWriterow=null;
BufferedWriterbw=null;
try{
//用流讀取文件
in=newBufferedInputStream(newFileInputStream(readFile));
//如果你文件已utf-8編碼的就按這個編碼來讀取,不然又中文會讀取到亂碼
ir=newInputStreamReader(in,"utf-8");
br= newBufferedReader(ir);
Stringline="";
//定義集合一行一行存放
List<String>list=newArrayList<String>();
//一行一行讀取
while((line=br.readLine())!=null){
System.out.println(line);
list.add(line);
}
//將集合轉換成數組
String[]arr=list.toArray(newString[list.size()]);

//寫入新文件
FilenewFile=newFile("D://home/b.txt");
if(!newFile.exists()){
newFile.createNewFile();
}

out=newBufferedOutputStream(newFileOutputStream(newFile));
//這里也可以給定編碼寫入新文件
ow=newOutputStreamWriter(out,"gb2312");
bw=newBufferedWriter(ow);
//遍歷數組吧字元串寫入新文件中
for(intx=0;x<arr.length;x++){
bw.write(arr[x]);
if(x!=arr.length-1){
//換行
bw.newLine();
}

}
//刷新該流的緩沖,這樣才真正寫入完整到新文件中
bw.flush();
}catch(Exceptione){

e.printStackTrace();
}finally{
//一定要關閉流,倒序關閉
try{
if(bw!=null){
bw.close();
}
if(ow!=null){
ow.close();
}
if(out!=null){
out.close();
}
if(br!=null){
br.close();
}
if(ir!=null){
ir.close();
}
if(in!=null){
in.close();
}
}catch(Exceptione2){

}

}

}
}

❷ java中按行讀取文本,並提取文本中包含有特定詞語的行

具體實現
//讀取一個文本的字元流
BufferedReader in = new BufferedReader(new FileReader("F:\\json.txt"));
String line = null;
//定義一個空字元串來接受讀到的字元串
String str="";
//循環把讀取到的字元賦給str
while((line = in.readLine())!=null)
{
str+=line;
}

System.out.println("str="+str);
//判斷str中是否有EFG子串,為true則說明有。進去if語句
if(str.contains("EFG")){
System.out.println("yes!");
//取得子串的初始位置
int i=str.indexOf("EFG");
//根據的要取的內容後多少字元+多少個
String strEFG=str.substring(i,i+3);
System.out.println("strEFG="+strEFG);
}

❸ 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中如何讀取文件中特定行的內容

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怎麼從文件中按行讀取,並把每一行分別賦值給不同的變數

這里通過一個工具類可以取出一個文件的所有行,最後獲得一個行的數組。如有需要,當然可以把各行數據賦值給對應的變數了

❻ java如何實現按行讀取鍵盤輸入

使用system.in.read可以讀取鍵盤的輸入,但是一般不會這樣去操作,可以使用java.util.scanner來配合system.in來進行數據的操作,舉例如下:
scanner
in=new
scanner(system.in);
string
readline
=
in.nextline();
//讀取鍵盤輸入的一行(以回車換行為結束輸入)

❼ 如何用java按行讀取文本文件

File file = new File("文件地址");
Scanner scanner = new Scanner(file);
String lineContent = null;
while(scanner.hasNextLine()){//如果有下一行
lineContent = scanner.nextLine();//讀取下一行內容
}
scanner.close();//關閉Scanner

❽ Java怎麼讀取文件的任意行

java中沒有指定行的方法。
只能挨個讀取。如果你想快速提取。而且文件又不是很大的話,就用LIST吧。

❾ java 按行讀取txt文件的數字

可以通過Java的IO流實現txt文本的讀取,然後用readline實現按行讀取。具體代碼如下:

packagetest;

importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.IOException;
importjava.util.ArrayList;
importjava.util.List;

publicclassTest{
publicstaticdouble[]writeToDat(Stringpath){
Filefile=newFile(path);
Listlist=newArrayList();
double[]nums=null;
try{
BufferedReaderbw=newBufferedReader(newFileReader(file));
Stringline=null;
//因為不知道有幾行數據,所以先存入list集合中
while((line=bw.readLine())!=null){
list.add(line);
}
bw.close();
}catch(IOExceptione){
e.printStackTrace();
}
//確定數組長度
nums=newdouble[list.size()];
for(inti=0;i<list.size();i++){
Strings=(String)list.get(i);
nums[i]=Double.parseDouble(s);
}
returnnums;
}
publicstaticvoidmain(String[]args){
Stringpath="d:/file4.txt";
double[]nums=writeToDat(path);
for(inti=0;i<nums.length;i++){
System.out.println(nums[i]);
}
}
}

❿ 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()方法,一行一行的讀!

熱點內容
存儲開銷 發布:2024-05-06 00:13:38 瀏覽:953
伺服器怎麼盈利 發布:2024-05-05 23:56:16 瀏覽:941
java網站培訓學校 發布:2024-05-05 23:43:11 瀏覽:40
淘寶搜索演算法 發布:2024-05-05 23:37:07 瀏覽:998
sqlwhencasethen 發布:2024-05-05 23:27:51 瀏覽:641
模架編程軟體 發布:2024-05-05 23:26:54 瀏覽:483
存儲過程異常 發布:2024-05-05 23:24:03 瀏覽:399
winxp訪問不了win7 發布:2024-05-05 23:05:23 瀏覽:734
演算法牛 發布:2024-05-05 22:43:40 瀏覽:720
grublinux引導 發布:2024-05-05 22:37:56 瀏覽:216