文件读写
来源:互联网 发布:如何在知乎添加话题 编辑:程序博客网 时间:2024/06/06 07:04
面向对象程序设计中,凡是数据输入输出操作都涉及到流。流本质上是字节序列的封装,因此又叫字节流。
字节流就是对二进制字节进行读写的对象。
除了字节流外,还有按一定编码格式以字符为单位进行操作的字符流、
字节流:最基本,任何数据。
字符流:作用有限,如不能使用字符流方式传播声音,图像,视频等。
1.编程,使用文件字符流建立一个文本文件,然后读取文件内容并显示在屏幕上。
- package IO流;
- import java.io.*;
- public class EXxalple1 {
- public static void main(String[] args) {
- try{
- File file=new File("D:\\abc.txt");//构建文件对象
- FileWriter fileout=new FileWriter(file);
- fileout.write("第一行(文本文件内容)abcdrfg");
- fileout.write("\r\n第二行(文本文件内容)1234567...");//\r\n是回车和换行符
- fileout.write("\r\n第三行(文本文件内容)end");
- fileout.close();//关闭文件字符输出流
- FileReader filein=new FileReader(file);
- int charcode;
- while((charcode=filein.read())!=-1){//读取流字符并判断是否到末尾
- System.out.print((char)charcode);//在屏幕上显示该字符
- }
- filein.close();//关闭文件字符输入流
- }catch(Exception e){
- System.out.println("异常:"+e.getMessage());
- }
- }
- }
- /*
- 输出结果:
- 第一行(文本文件内容)abcdrfg
- 第二行(文本文件内容)1234567...
- 第三行(文本文件内容)end
- */
注意:构造FileWriter对象时,如果构造方法参数中的文件还没有建立,则会自动创建,如果存在则覆盖。而构造FileReader对象时,要求构造方法参数中的文件必须存在,否则会抛出FileNotFoundException(系统找不到指定文件)异常。
2.使用文件字节输入输出流编写文件复制程序。
- package IO流;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.util.Scanner;
- import javax.imageio.stream.FileImageInputStream;
- public class Example2 {
- public static void main(String[] args) {
- try{
- Scanner scan=new Scanner(System.in);
- System.out.println("请输入含有路径的源文件名:");
- String source=scan.next();
- FileInputStream input=new FileInputStream(source);
- System.out.println("请输入含有路径的目标文件名:");
- String target=scan.next();
- FileOutputStream output=new FileOutputStream(target);
- int readbyte;
- while((readbyte=input.read())!=-1)
- {
- output.write(readbyte);
- }
- System.out.println("----已成功把源文件复制到目标文件!");
- input.close();
- output.close();
- }
- catch(Exception e){
- System.out.println("异常:"+e.getMessage());
- }
- finally{
- System.out.println("----程序结束");
- }
- }
- }
- /*
- 输出结果:
- 请输入含有路径的源文件名:
- D:\abc.txt
- 请输入含有路径的目标文件名:
- D:\abcdf.txt
- ----已成功把源文件复制到目标文件!
- ----程序结束
- */
3.修改2号题目,设置文件对话框来选定需要复制的文件。
- package IO流;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.util.Scanner;
- import javax.imageio.stream.FileImageInputStream;
- import javax.swing.JFileChooser;
- import javax.swing.JOptionPane;
- public class Example2 {
- public static void main(String[] args) {
- try{
- JFileChooser chooser=new JFileChooser();
- int returnVal=chooser.showOpenDialog(null);
- FileInputStream input=new FileInputStream(chooser.getSelectedFile());
- JFileChooser chooser2=new JFileChooser();
- int returnVal2=chooser2.showOpenDialog(null);
- FileOutputStream output=new FileOutputStream(chooser2.getSelectedFile());
- int readbyte;
- while((readbyte=input.read())!=-1)
- {
- output.write(readbyte);
- }
- if(returnVal2==JFileChooser.APPROVE_OPTION){
- JOptionPane.showMessageDialog(null,"已成功将"+chooser.getSelectedFile()+"复制到"+chooser2.getSelectedFile());
- }
- input.close();
- output.close();
- }
- catch(Exception e){
- System.out.println("异常:"+e.getMessage());
- }
- finally{
- System.out.println("----程序结束");
- }
- }
- }
0 0
- 文件读写、剪贴板读写
- 读写文件
- 文件读写
- 读写文件
- 读写文件
- 文件读写
- 读写文件
- 读写文件
- 读写文件
- 文件读写
- 文件读写
- 文件读写
- 文件读写
- 读写文件
- 文件读写
- 文件读写
- 文件读写
- 文件读写
- tslib1.4移植简单记录
- 电信采集项目的一个小总结
- Hadoop 伪分布模式下关机后,fs端口连接不上问题解决方案
- Android opengl 2d绘图/贴图详细教程
- 关于“IOS6_内置字体库下载”的文章网址
- 文件读写
- UITextView:定制选中文字的菜单和用代码选择文字
- 计算机操作系统——存储器管理(6)
- modem建链过程详述
- 即使没有读者,你应该写博客(You should blog even if you have no readers)
- poj 2524 Ubiquitous Religions
- Fedora 20下Eclipse Ingido中配置hadoop插件,并运行Wordcount例程
- SQL join
- .net序列化及反序列化