導航:首頁 > 編程語言 > java位元組流讀取文件

java位元組流讀取文件

發布時間:2024-12-16 05:58:06

java讀取文件內容(Java讀取文件內容為字元串)

JAVA中讀取文件(二進制,字元)內容的幾種方

JAVA中讀取文件內容的方法有很多,比如按位元組讀取文件內容,按字元讀取文件內容,按行讀取文件內容,隨機讀取文件內容等方法,本文就以上方法的具體實現給出代碼,需要的可以直接復制使用

publicclassReadFromFile{

/**

*以位元組為單位讀取文件,常用於讀二進制文件,如圖片、聲音、影像等文件。

*/

(StringfileName){

Filefile=newFile(fileName);

InputStreamin=null;

try{

System.out.println("以位元組為單位讀取文件內容,一次讀一個位元組:");

//一次讀一個位元組

in=newFileInputStream(file);

inttempbyte;

while((tempbyte=in.read())!=-1){

System.out.write(tempbyte);

}

in.close();

}catch(IOExceptione){

e.printStackTrace();

return;

}

try{

System.out.println("以位元組為單位讀取文件內容,一次讀多個位元組:");

//一次讀多個位元組

byte[]tempbytes=newbyte[100];

intbyteread=0;

in=newFileInputStream(fileName);

ReadFromFile.showAvailableBytes(in);

//讀入多個位元組到位元組數組中,byteread為一次讀入的位元組數

while((byteread=in.read(tempbytes))!=-1){

System.out.write(tempbytes,0,byteread);

}

}catch(Exceptione1){

e1.printStackTrace();

}finally{

if(in!=null){

try{

in.close();

}catch(IOExceptione1){

}

}

}

}

/**

*以字元為單位讀取文件,常用於讀文本,數字等類型的文件

*/

(StringfileName){

Filefile=newFile(fileName);

Readerreader=null;

try{

System.out.println("以字元為單位讀取文件內容,一次讀一個位元組:");

//一次讀一個字元

reader=newInputStreamReader(newFileInputStream(file));

inttempchar;

while((tempchar=reader.read())!=-1){

//對於windows下, 這兩個字元在一起時,表示一個換行。

//但如果這兩個字元分開顯示時,會換兩次行。

//因此,屏蔽掉 ,或者屏蔽 。否則,將會多出很多空行。

if(((char)tempchar)!=' '){

System.out.print((char)tempchar);

}

}

reader.close();

}catch(Exceptione){

e.printStackTrace();

}

try{

System.out.println("以字元為單位讀取文件內容,一次讀多個位元組:");

//一次讀多個字元

char[]tempchars=newchar[30];

intcharread=0;

reader=newInputStreamReader(newFileInputStream(fileName));

//讀入多個字元到字元數組中,charread為一次讀取字元數

while((charread=reader.read(tempchars))!=-1){

//同樣屏蔽掉 不顯示

if((charread==tempchars.length)

(tempchars[tempchars.length-1]!=' ')){

System.out.print(tempchars);

}else{

for(inti=0;icharread;i++){

if(tempchars[i]==' '){

continue;

}else{

System.out.print(tempchars[i]);

}

}

}

}

}catch(Exceptione1){

e1.printStackTrace();

}finally{

if(reader!=null){

try{

reader.close();

}catch(IOExceptione1){

}

}

}

}

/**

*以行為單位讀取文件,常用於讀面向行的格式化文件

*/

(StringfileName){

Filefile=newFile(fileName);

BufferedReaderreader=null;

try{

System.out.println("以行為單位讀取文件內容,一次讀一整行:");

reader=newBufferedReader(newFileReader(file));

StringtempString=null;

intline=1;

//一次讀入一行,直到讀入null為文件結束

while((tempString=reader.readLine())!=null){

//顯示行號

System.out.println("line"+line+":"+tempString);

line++;

}

reader.close();

}catch(IOExceptione){

e.printStackTrace();

}finally{

if(reader!=null){

try{

reader.close();

}catch(IOExceptione1){

}

}

}

}

/**

*隨機讀取文件內容

*/

(StringfileName){

RandomAccessFilerandomFile=null;

try{

System.out.println("隨機讀取一段文件內容:");

//打開一個隨機訪問文件流,按只讀方式

randomFile=newRandomAccessFile(fileName,"r");

//文件長度,位元組數

longfileLength=randomFile.length();

//讀文件的起始位置

intbeginIndex=(fileLength4)?4:0;

//將讀文件的開始位置移到beginIndex位置。

randomFile.seek(beginIndex);

byte[]bytes=newbyte[10];

intbyteread=0;

//一次讀10個位元組,如果文件內容不足10個位元組,則讀剩下的位元組。

//將一次讀取的位元組數賦給byteread

while((byteread=randomFile.read(bytes))!=-1){

System.out.write(bytes,0,byteread);

}

}catch(IOExceptione){

e.printStackTrace();

}finally{

if(randomFile!=null){

try{

randomFile.close();

}catch(IOExceptione1){

}

}

}

}

/**

*顯示輸入流中還剩的位元組數

*/

(InputStreamin){

try{

System.out.println("當前位元組輸入流中的位元組數為:"+in.available());

}catch(IOExceptione){

e.printStackTrace();

}

}

publicstaticvoidmain(String[]args){

StringfileName="C:/temp/newTemp.txt";

ReadFromFile.readFileByBytes(fileName);

ReadFromFile.readFileByChars(fileName);

ReadFromFile.readFileByLines(fileName);

ReadFromFile.readFileByRandomAccess(fileName);

}

}

Java如何讀取txt文件的內容?

java讀取txt文件內容。可以作如下理解:

首先獲得一個文件句柄。Filefile=newFile();file即為文件句柄。兩人之間連通電話網路了。接下來可以開始打電話了。

通過這條線路讀取甲方的信息:newFileInputStream(file)目前這個信息已經讀進來內存當中了。接下來需要解讀成乙方可以理解的東西

既然你使用了FileInputStream()。那麼對應的需要使用InputStreamReader()這個方法進行解讀剛才裝進來內存當中的數據

解讀完成後要輸出呀。那當然要轉換成IO可以識別的數據呀。那就需要調用位元組碼讀取的方法BufferedReader()。同時使用bufferedReader()的readline()方法讀取txt文件中的每一行數據哈。

package?com.campu;

?

import?java.io.BufferedInputStream;

import?java.io.BufferedReader;

import?java.io.File;

import?java.io.FileInputStream;

import?java.io.InputStreamReader;

import?java.io.Reader;

?

/**

?*?@author?Java團長

?*?H20121012.java

?*?2017-10-29上午11:22:21

?*/

public?class?H20121012?{

????/**

?????*?功能:Java讀取txt文件的內容

?????*?步驟:1:先獲得文件句柄

?????*?2:獲得文件句柄當做是輸入一個位元組碼流,需要對這個輸入流進行讀取

?????*?3:讀取到輸入流後,需要讀取生成位元組流

?????*?4:一行一行的輸出。readline()。

?????*?備註:需要考慮的是異常情況

?????*?@param?filePath

?????*/

????public?static?void?readTxtFile(String?filePath){

????????try?{

????????????????String?encoding="GBK";

????????????????File?file=new?File(filePath);

????????????????if(file.isFile()??file.exists()){?//判斷文件是否存在

????????????????????InputStreamReader?read?=?new?InputStreamReader(

????????????????????new?FileInputStream(file),encoding);//考慮到編碼格式

????????????????????BufferedReader?bufferedReader?=?new?BufferedReader(read);

????????????????????String?lineTxt?=?null;

????????????????????while((lineTxt?=?bufferedReader.readLine())?!=?null){

????????????????????????System.out.println(lineTxt);

????????????????????}

????????????????????read.close();

????????}else{

????????????System.out.println("找不到指定的文件");

????????}

????????}?catch?(Exception?e)?{

????????????System.out.println("讀取文件內容出錯");

????????????e.printStackTrace();

????????}

?????

????}

?????

????public?static?void?main(String?argv[]){

????????String?filePath?=?"L:\Apache\htdocs\res\20121012.txt";

//??????"res/";

????????readTxtFile(filePath);

????}

?????

?????

?

}

我有一個微信公眾號,經常會分享一些Java技術相關的干貨文章,還有一些學習資源。

如果你需要的話,可以用微信搜索「Java團長」或者「javatuanzhang」關注。

java中怎樣從文件中讀取數據?

分為讀位元組,讀字元兩種讀法x0dx0a◎◎◎FileInputStream位元組輸入流讀文件◎◎◎x0dx0apublicclassMaintest{(String[]args)throwsIOException{x0dx0ax0dx0aFilef=newFile("G:\justforfun\xiangwei.txt");=newFileInputStream(f);x0dx0ax0dx0abyte[]bs=newbyte[1024];x0dx0ax0dx0aintcount=0;x0dx0awhile((count=fin.read(bs))0)x0dx0a{x0dx0ax0dx0aStringstr=newString(bs,0,count);//反復定義新變數:每一次都重新定義新變數,接收新讀取的數據x0dx0ax0dx0aSystem.out.println(str);//反復輸出新變數:每一次都輸出重新定義的新變數x0dx0a}x0dx0afin.close();x0dx0a}x0dx0a}x0dx0ax0dx0a◎◎◎FileReader字元輸入流讀文件◎◎◎x0dx0apublicclassMaintest{x0dx0apublicstaticvoidmain(String[]args)throwsIOException{x0dx0ax0dx0aFilef=newFile("H:\justforfun\xiangwei.txt");x0dx0ax0dx0aFileReaderfre=newFileReader(f);x0dx0ax0dx0aBufferedReaderbre=newBufferedReader(fre);x0dx0ax0dx0aStringstr="";x0dx0awhile((str=bre.readLine())!=null)//●判斷最後一行不存在,為空x0dx0a{x0dx0aSystem.out.println(str);x0dx0a}x0dx0abre.close();x0dx0afre.close();x0dx0ax0dx0a}x0dx0ax0dx0a}

java中在怎麼讀取文件夾中的內容

以下java程序的作用是將當前目錄及其子目錄中的.java文件收集到collection.txt文件中,並添加行號,你可以參考一下。

importjava.io.*;

publicclassCollection

{

publicstaticvoidmain(String[]args)throwsException

{

finalStringF=".\collection.txt";

FW=newFileWriter(newFile(F));

Collection.ProcessDirectory(newFile("."));

Collection.FW.flush();

Collection.FW.close();

}

(Filed)throwsException

{

File[]ds=null;

Collection.ProcessJavaFile(d);

ds=d.listFiles(Collection.DFilter);

for(inti=0;ids.length;i++)

{

Collection.ProcessDirectory(ds[i]);

}

}

(Filed)throwsException

{

Stringline=null;

LineNumberReaderlnr=null;

File[]fs=d.listFiles(Collection.FNFilter);

for(inti=0;ifs.length;i++)

{

lnr=newLineNumberReader(newFileReader(fs[i]));

Collection.FW.write(fs[i].getCanonicalPath()+" ");

System.out.println(fs[i].getCanonicalPath());

while(null!=(line=lnr.readLine()))

{

Collection.FW.write(""+lnr.getLineNumber()+""+line+" ");

System.out.println(""+lnr.getLineNumber()+""+line);

}

Collection.FW.write(" ");

System.out.println();

}

}

privatestaticFileWriterFW;

=newFilenameFilter()

{

publicbooleanaccept(Filedir,Stringname)

{

returnname.endsWith(".java");

}

};

=newFileFilter()

{

publicbooleanaccept(Filepathname)

{

returnpathname.isDirectory();

}

};

}

java中怎樣從一個文件中讀取文件信息

java讀取文件路徑、所佔空間大小等文件消息,主要是使用FileInputStream類來操作,示例如下:

import?java.io.File;

Ⅱ java中File文件讀取的區別和用法

一、File
類關注的是文件在磁碟上的存儲,而
FileInputStream
流類關注的是文件的內容。
二、關於InputStream和Reader;
InputStream提供的是
位元組流
的讀取,使用InputStream讀取出來的是byte數組,而非文本讀取,用Reader讀取出來的是char數組或者String,這是InputStream和Reader類的根本區別。
InputStreamReader可以將讀如stream轉換成字元流方式,是reader和stream之間的橋梁.
Reader類及其子類提供的字元流的讀取char(16位,unicode編碼),inputStream及其子類提供位元組流的讀取byte(8位),所以FileReader類是將文件按字元流的方式讀取,FileInputStream則按位元組流的方式讀取文件;
FileInputStream以位元組為單位(非
unicode
)的流處理。位元組序列即:
二進制數據
。與編碼無關,不存在
亂碼
問題。
FileInputStream
:以位元組流方式讀取;
FileReader
:把
文件轉換
為字元流讀入;
三、常用的Reader類
FileReader
,InputStreamReader
,BufferedReader
FileReader

InputStreamReader
涉及編碼轉換,可能在不同的平台上出現亂碼現象。
(FileInputStream
以二進制方式處理,不會出現亂碼現象。)
FileReader是InputStreamReader
類的子類。
InputStreamReader

構造函數
參數為InputStream

編碼方式
,當要指定編碼方式時,必須使用
InputStreamReader
類。
FileReader
構造函數的參數與
FileInputStream
同,為
File
對象或表示
path

String。
1、FileReader的用法
FileReader
fr
=
new
FileReader("file.txt");
char[]
buffer
=
new
char[1024];
int
ch
=
0;
while((ch
=
fr.read())!=-1
)
{

System.out.print((char)ch);
}
2、InputStreamReader的用法
InputStreamReader
isr
=
new
InputStreamReader(new
FileInputStream("file.txt"));
while((ch
=
isr.read())!=-1)
{
System.out.print((char)ch);
}
3、BufferedReader的用法。
BufferedReader
由Reader類擴展而來,提供通用的緩沖方式文本讀取,而且提供了很實用的readLine,讀取分行文本很適合,BufferedReader是針對Reader的,不直接針對文件,也不是只針對文件讀取。
BufferedReader
br
=
new
BufferedReader(new
InputStreamReader(new
FileInputStream("file.txt")));
String
data
=
null;
while((data
=
br.readLine())!=null)
{
System.out.println(data);
}

Ⅲ 用Java讀寫文件(輸入/輸出)-教程

一、文件的Java I/O(輸入/輸出)

1.1. 概述

在現代Java應用程序中,通常使用Java.nio.fileAPI來讀寫文件。

Java將所有輸入作為位元組流讀取。input stream類是表示位元組輸入流的所有類的超類。

1.2. 用Java讀取文件

讀取文本文件,可以使用Files.readAllBytes方法。下面的清單演示了此方法的用法。

要逐行將文本文件讀入字元串結構類型String Structure的列表,可以使用Files.readAllLinesmethod.

Files.readAllLinesmethod. 使用UTF-8字元編碼。它還確保在讀取所有位元組後或在發生異常時關閉文件。

1.3. 逐行讀取和過濾

Files.lines方法允許逐行讀取文件,提供流。可以過濾和映射此流。讀取文件內容後,Files.lines不會關閉該文件,因此應將其包裝在try with resource語句中。

在下面的例子中,每行末尾不必要的空白被刪除,空行被過濾掉。

下一個示例演示如何根據某個正則表達式篩選出行。

下一個示例從位於META-INF文件夾中名為MANIFEST.MF的文件中提取以「Bundle Version:」開頭的行。它刪除前綴並刪除所有前導和尾隨空格。

1.4. 用Java編寫文件

要編寫文件,可以使用以下方法:

1.5. 使用files.List()列出所有文件和子目錄

您可以訪問與Java程序當前執行目錄相關的文件。要訪問運行Java程序的當前目錄,可以使用以下語句。

1.6. 如何識別當前目錄

2. 練習:讀寫文件

重新定義一個新的Java程序,叫做.vogella.java.files再創造一個FilesUtil.javaclass.

要測試這些方法,請創建一個名為file.txt的文本文件,其中包含項目文件夾中的某些內容。創建以下主類並運行它。

3. 示例:遞歸地列出目錄的所有文件

Java8提供了一個很好的流來處理樹中的所有文件。

Files.walk(Paths.get(path)) .filter(Files::isRegularFile) .forEach(System.out::println);

4. 示例:刪除包含所有子目錄和文件的目錄

5. 從project/jar中讀取資源

您可以通過.getClass().getResourceAsStream()完成method chain from any object.。

6. 培訓與技術

隨時歡迎大咖給提意見~~~常年需要技術大牛!!可以隨時聯系我

Ⅳ java中怎樣按位元組讀取文件並復制到另一個文件夾

這里以位元組流FileInputStream,FileOutputStream為例。代碼例子如下:

importjava.io.File;
/**
*把一個文件夾中的文件復制到一個指定的文件夾
*@authoryoung
*
*/
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;

publicclassCopyFile{
publicstaticvoidmain(String[]args){
/*指定源exe文件的存放路徑*/
Stringstr="f:/jdk-1_5_0_06-windows-i586-p.exe";
/*指定復制後的exe的目標路徑*/
Stringstrs="e:/.exe";
/*創建輸入和輸出流*/
FileInputStreamfis=null;
FileOutputStreamfos=null;

try{
/*將io流和文件關聯*/
fis=newFileInputStream(str);

fos=newFileOutputStream(strs);
byte[]buf=newbyte[1024*1024];
intlen;
while((len=fis.read(buf))!=-1){
fos.write(buf,0,len);

}
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
try{
fis.close();
fos.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}

Ⅳ java怎麼實現讀取一個文件,拿到二進制流

Java讀取二進制文件,以位元組為單位進行讀取,還可讀取圖片、音樂文件、視頻文件等,
在Java中,提供了四種類來對文件進行操作,分別是InputStream OutputStream Reader Writer ,前兩種是對位元組流的操作,後兩種則是對字元流的操作。
示例代碼如下:
public static void readFileByBytes(String fileName){
File file = new File(fileName);
InputStream in = null;
try {
System.out.println("一次讀一個");
// 一次讀一個位元組
in = new FileInputStream(file);
int tempbyte;
while ((tempbyte = in.read()) != -1) {
System.out.write(tempbyte);
}
in.close();
} catch (IOException e) {
e.printStackTrace();
return;
}

閱讀全文

與java位元組流讀取文件相關的資料

熱點內容
單片機into是什麼意思 瀏覽:620
lpcs怎麼加編譯器 瀏覽:855
雲伺服器免費流程 瀏覽:389
車載u盤音樂文件夾讀取 瀏覽:959
壓縮句子題怎麼給分 瀏覽:797
單片機編程線上課程 瀏覽:166
linux查看目錄命令 瀏覽:40
亞龍有單片機比賽題嗎 瀏覽:479
app如何從一個手機導入另一個手機 瀏覽:961
甘肅省古籍文獻整理編譯中心官網 瀏覽:257
狗狗指南高級pdf 瀏覽:368
怎麼找回qq解壓密碼 瀏覽:776
51單片機p0口不用電阻行嗎 瀏覽:35
怎樣將照片存到文件夾 瀏覽:887
怎麼用鏡像編譯openwrt 瀏覽:957
有依據的心理解壓的辦法 瀏覽:895
怎麼下載鑄安學習app 瀏覽:477
為什麼解壓神器里的廣告不能看 瀏覽:810
命令與征服打不開 瀏覽:542
資料庫伺服器如何登錄 瀏覽:839