java中文件的输入和输出

1.有两种类型的文件,文本的和二进制的。文本文件的本质是存储在磁盘上的字符。可以使用文本编辑器进行处理的文件称为文本文件,其他的称为二进制文件,不能使用文本编辑器来读取二进制文件,二进制文件被设计为使用程序来读取。

 

2.java源程序存储在文本文件中,可以使用文本编辑器读取,它是文本文件。而java类文件是二进制文件,由Java虚拟机读取,二进制I/O不涉及编码和解码,因此更加高效。计算机并不区分文本文件和二进制文件,所有的文件在计算机中都是以二进制文件存储的。任何机器上的java程序都可以读取Java程序锁创建的二进制文件。Java文件可以在任何具有Java虚拟机的机器上运行。

 

3.Print: 将信息显示在命令窗口中,输出光标定位在最后一个字符之后;

Println:将信息显示在命令窗口中,输出光标换行定位在下一行开头

Printf: 将信息进行格式化显示在命令窗口中,输出光标定位在最后一个字符之后,其来自C语言,产生格式化输出的函数(来自stdio.h中);

printf中的f代表格式,暗示着方法将以某种格式来打印。语法为:

System.out.printf(format,item1,item2.....itemk);

这里的format是一个由子串和格式限定符构成的字符串。

例:System.out.printf("count is %d and amount is %f",count,amount);

 

4.Scanner类读取文本数据,Printwriter类写文本数据。

 

5.使用Scanner读取文本数据。

从键盘读取:Scanner input=new Scanner( System.in);

从文件读取:Scanner input=new Scanner(new File(filename));

利用java.io.File类来创建file文件的一个实例,然后使用new Scanner(File)为文件创建一个Scanner。如下:

java.io.File   file = new java.io.File("score.txt");

Scanner input=new Scanner(file);

int score=input.nextInt();

方法next()和nextLine()都会读取一个字符串。next()方法读取一个由分隔符分隔的字符串。nextLine()读取一个以换行符结束的行。

 

6.使用PrintWriter写文本数据

向一个文本文件写入数据,需要先创建一个PrintWriter对象。

PrintWriter   output=new  PrintWriter(filename);

例:java.io.File   file=new java.io.File("score.txt");

java.io.PrintWriter  output=new java.io.PrintWriter(file);

output.print("hello");

output.println("hello");

7.二进制I/O类中的所有方法都声明为抛出java.io.IOException或java.io.IOException的子类。

8.input从文件或控制台输入到程序。

   output从程序输出到文件或控制台。

9.FileInputStream类和FileOutputStream类用于从/向文件读取/写入字节。它们所有的方法都是从InputStream和OutputStream类继承的。例:

import java.io.*;

//从程序输出,向文件写入

FileOutputStream  output=new FileOutputStream("temp.dat");

output.write(123);   

 

 //从文件读取,向程序输入

FileInputStream input=new FileInputStream("temp.dat");

int value;

while((value=input.read())!=-1) 

System.out.print(value+" ");

 

10.如果试图为一个不存在的文件创建FileInputStream对象,将会发生java.io.FileNotFoundException异常。

11.catch(EOFException ex){

System.out.println("读取完毕");

}

从文件读取结束时会抛出异常,表示文件中对象读取完毕。

 

12.DataInputStream从数据流读取字节,并且将它们转换为合适的基本类型值或字符串,它继承自FilterInputStream类,并实现DataInput接口。

 

DataOutputStream将基本类型的值或字符串转换为字节,并且将字节输出到流。

例:DataOutputStream output=new DataOutputStream(new FileOutputStream("temp.dat"));

output.writeDouble(23.5);

 

DataInputStream input=new DataInputStream(new FileInputStream("temp.dat"));

System.out.println(input.readDouble());

13.BufferedInputStream类和BufferedOutputStream类可以通过减少磁盘读写次数来提高输入和输出的速度。

使用BufferedInputStream时,磁盘上的整块数据一次性读入内存的缓冲区中,然后将缓冲区中将单个数据传递到程序中。

使用BufferedOutputStream时,单个数据首先写入内存的缓冲区,当缓冲区已满的时候,缓冲区的数据一次性写入磁盘中。

DataOutputStream output=new DataOutputStream(new BufferedOutputStream(new FileOutputStream("temp.dat")));

DataInputStream input=new DataInputStream(new BufferedInputStream(new FileInputStream("temp.dat")));

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值