Ⅰ 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;
}