导航:首页 > 编程语言 > 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字节流读取文件相关的资料

热点内容
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 浏览:476
为什么解压神器里的广告不能看 浏览:810
命令与征服打不开 浏览:542
数据库服务器如何登录 浏览:838
数控编程指令p4是什么意思 浏览:615