java文件读写数字_Java文件读写[转]

importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.RandomAccessFile;importjava.io.Reader;publicclassReadFromFile {/*** 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。

*@paramfileName 文件的名*/publicstaticvoidreadFileByBytes(String fileName){

File file=newFile(fileName);

InputStream in=null;try{

System.out.println("以字节为单位读取文件内容,一次读一个字节:");//一次读一个字节in=newFileInputStream(file);inttempbyte;while((tempbyte=in.read())!=-1){

System.out.write(tempbyte);

}

in.close();

}catch(IOException e) {

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(Exception e1) {

e1.printStackTrace();

}finally{if(in!=null){try{

in.close();

}catch(IOException e1) {

}

}

}

}/*** 以字符为单位读取文件,常用于读文本,数字等类型的文件

*@paramfileName 文件名*/publicstaticvoidreadFileByChars(String fileName){

File file=newFile(fileName);

Reader reader=null;try{

System.out.println("以字符为单位读取文件内容,一次读一个字节:");//一次读一个字符reader=newInputStreamReader(newFileInputStream(file));inttempchar;while((tempchar=reader.read())!=-1){//对于windows下,rn这两个字符在一起时,表示一个换行。//但如果这两个字符分开显示时,会换两次行。//因此,屏蔽掉r,或者屏蔽n。否则,将会多出很多空行。if(((char)tempchar)!='r'){

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

}

}

reader.close();

}catch(Exception e) {

e.printStackTrace();

}try{

System.out.println("以字符为单位读取文件内容,一次读多个字节:");//一次读多个字符char[] tempchars=newchar[30];intcharread=0;

reader=newInputStreamReader(newFileInputStream(fileName));//读入多个字符到字符数组中,charread为一次读取字符数while((charread=reader.read(tempchars))!=-1){//同样屏蔽掉r不显示if((charread==tempchars.length)&&(tempchars[tempchars.length-1]!='r')){

System.out.print(tempchars);

}else{for(inti=0; i

}else{

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

}

}

}

}

}catch(Exception e1) {

e1.printStackTrace();

}finally{if(reader!=null){try{

reader.close();

}catch(IOException e1) {

}

}

}

}/*** 以行为单位读取文件,常用于读面向行的格式化文件

*@paramfileName 文件名*/publicstaticvoidreadFileByLines(String fileName){

File file=newFile(fileName);

BufferedReader reader=null;try{

System.out.println("以行为单位读取文件内容,一次读一整行:");

reader=newBufferedReader(newFileReader(file));

String tempString=null;intline=1;//一次读入一行,直到读入null为文件结束while((tempString=reader.readLine())!=null){//显示行号System.out.println("line"+line+":"+tempString);

line++;

}

reader.close();

}catch(IOException e) {

e.printStackTrace();

}finally{if(reader!=null){try{

reader.close();

}catch(IOException e1) {

}

}

}

}/*** 随机读取文件内容

*@paramfileName 文件名*/publicstaticvoidreadFileByRandomAccess(String fileName){

RandomAccessFile randomFile=null;try{

System.out.println("随机读取一段文件内容:");//打开一个随机访问文件流,按只读方式randomFile=newRandomAccessFile(fileName,"r");//文件长度,字节数longfileLength=randomFile.length();//读文件的起始位置intbeginIndex=(fileLength>4)?4:0;//将读文件的开始位置移到beginIndex位置。randomFile.seek(beginIndex);byte[] bytes=newbyte[10];intbyteread=0;//一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。//将一次读取的字节数赋给bytereadwhile((byteread=randomFile.read(bytes))!=-1){

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

}

}catch(IOException e){

e.printStackTrace();

}finally{if(randomFile!=null){try{

randomFile.close();

}catch(IOException e1) {

}

}

}

}/*** 显示输入流中还剩的字节数

*@paramin*/privatestaticvoidshowAvailableBytes(InputStream in){try{

System.out.println("当前字节输入流中的字节数为:"+in.available());

}catch(IOException e) {

e.printStackTrace();

}

}publicstaticvoidmain(String[] args) {

String fileName="C:/temp/newTemp.txt";

ReadFromFile.readFileByBytes(fileName);

ReadFromFile.readFileByChars(fileName);

ReadFromFile.readFileByLines(fileName);

ReadFromFile.readFileByRandomAccess(fileName);

}

}

二、将内容追加到文件尾部importjava.io.FileWriter;importjava.io.IOException;importjava.io.RandomAccessFile;/*** 将内容追加到文件尾部*/publicclassAppendToFile {/*** A方法追加文件:使用RandomAccessFile

*@paramfileName 文件名

*@paramcontent 追加的内容*/publicstaticvoidappendMethodA(String fileName,

String content){try{//打开一个随机访问文件流,按读写方式RandomAccessFile randomFile=newRandomAccessFile(fileName,"rw");//文件长度,字节数longfileLength=randomFile.length();//将写文件指针移到文件尾。randomFile.seek(fileLength);

randomFile.writeBytes(content);

randomFile.close();

}catch(IOException e){

e.printStackTrace();

}

}/*** B方法追加文件:使用FileWriter

*@paramfileName

*@paramcontent*/publicstaticvoidappendMethodB(String fileName, String content){try{//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件FileWriter writer=newFileWriter(fileName,true);

writer.write(content);

writer.close();

}catch(IOException e) {

e.printStackTrace();

}

}publicstaticvoidmain(String[] args) {

String fileName="C:/temp/newTemp.txt";

String content="new append!";//按方法A追加文件AppendToFile.appendMethodA(fileName, content);

AppendToFile.appendMethodA(fileName,"append end. n");//显示文件内容ReadFromFile.readFileByLines(fileName);//按方法B追加文件AppendToFile.appendMethodB(fileName, content);

AppendToFile.appendMethodB(fileName,"append end. n");//显示文件内容ReadFromFile.readFileByLines(fileName);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值