转载自:https://blog.csdn.net/gx17864373822/article/details/79992679

1、使用Scanner类解析文件。

(1)准备文件test.txt内容,内含字符、数字等文本信息;

(2)使用Scanner类读取里面的字符信息和数字信息分别输出。

import java.io.*;
import java.util.*;public class Main {public static void main(String[] args) throws FileNotFoundException {File file = new File("d:\\test.txt");// 创建目录Scanner sc = new Scanner(file);StringBuffer buff1 = new StringBuffer();StringBuffer buff2 = new StringBuffer();String str;while (sc.hasNext()) {str = sc.nextLine();for (int i = 0; i < str.length(); i++) {if (!(str.charAt(i) >= '0' && str.charAt(i) <= '9')) {buff1.append(str.charAt(i));}}for (int i = 0; i < str.length(); i++) {if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {buff2.append(str.charAt(i));}}}System.out.println("文件内的字符信息有:" + buff1);System.out.println("文件内的数字信息有:" + buff2);sc.close();}
}

2、利用对象输入/输出流进行文件的读写。

根据要求编写程序:

(1)创建类Student,内含学号、姓名、年龄、班级等属性,重写父类的toString()方法,用于输出学生的信息;

(2)建立测试类,建立Student类的对象数组stuArray,里面放置若干个学生对象,将数组中的数据依次写入文件stu.dat;然后读取该文件中的信息,依次还原出数组中各Student对象的信息。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.*;class Sdutent implements Serializable{String id;String name;int age;String banji;public Sdutent(String id, String name, int age, String banji) {super();this.id = id;this.name = name;this.age = age;this.banji = banji;}public String toString() {return "Student [id=" + id + ", name=" + name + ", age=" + age + ", banji=" + banji + "]";}}
public class Main {public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException{Sdutent stu1 = new Sdutent("0001", "aaa", 20, "00001");Sdutent stu2 = new Sdutent("0002", "bbb", 20, "00001");Sdutent[] stuArray = new Sdutent[] {stu1, stu2};//创建学生对象数组ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("stu.dat"));//输出流写进stu.dat文件里ObjectInputStream ois = new ObjectInputStream(new FileInputStream("stu.dat"));//输入流从stu.dat文件中读出oos.writeObject(stuArray);Object object = ois.readObject();if(object instanceof Sdutent[]) {Sdutent[] stus = (Sdutent[])object;for(Sdutent stu:stus) {System.out.println(stu);}}oos.close();ois.close();}
}

3、用打开文本对话框选取文件,读写文件内容。

用打开文本对话框选取文件,读取文件内容,在显示器中显示出来,进行小写字母转换成大写字母,然后用保存文本对话框选取目标文件,向目标文件里面追加写入处理后的字符。

import java.io.*;
import javax.swing.JFileChooser;public class Main {public static void main(String[] args) throws IOException {StringBuffer buffer = new StringBuffer();BufferedReader br;BufferedWriter bw;JFileChooser ch = new JFileChooser();//打开文件int result = ch.showOpenDialog(null);//读文件if(result == JFileChooser.APPROVE_OPTION) {//确定键File file = ch.getSelectedFile();br = new BufferedReader(new FileReader(file));//读取文件String line;while((line = br.readLine()) != null) {line = line.toUpperCase();//全部大写字母buffer.append(line);}System.out.println(buffer);//显示出来br.close();}//将buffer内存的数据写出去//保存文件result = ch.showSaveDialog(null);if(result == JFileChooser.APPROVE_OPTION) {File file = ch.getSelectedFile();bw = new BufferedWriter(new FileWriter(file));bw.write(buffer.toString());bw.flush();//缓冲,否则保存的文件内没有内容bw.close();}}
}

4、读取网络资源,写出代码至文件。

读取“http://www.sdut.edu.cn“网页内容,存至“sdut.html”。

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;public class Main {public static void main(String[] args) throws IOException {URL url = new URL("http://www.sdut.edu.cn");InputStream is = url.openStream();//输入流,读取OutputStream os = new FileOutputStream("d:\\sdut.html");//输出流,写入这个文件中byte[] bytes = new byte[10];//一个读取10个字符,但是写入不是int len;while((len = is.read(bytes)) != -1) {
//       System.out.println(Arrays.toString(bytes));os.write(bytes, 0, len);}}
}

5、利用各种输入输出流进行读写文件,分析其读写效率。

读出文件D:\test1.txt的内容,显示在屏幕的同时,将文件写至D:\test2.txt中,计算其执行的时间,从而分析执行的效率。

提示,可用如下的输入/输入流类:

字节输入/输出流:FileInputStream和FileOutputStream、BufferedInputStream和BufferedOutputStream、DataInputStream和DataOutputStream;

字符输入/输出流:FileReader和FileWriter、BufferedReader 和 BufferedWriter

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;public class Main {public static void main(String[] args) throws IOException {// 字符输入输出流// FileReader和FileWriterReader ir = new FileReader("d:\test1.txt");Writer wr = new FileWriter("d:\test2.txt");long l1 = System.currentTimeMillis();char[] chars = new char[10]; 缓冲区int len;while ((len = ir.read(chars)) != -1) {wr.write(chars, 0, len);/*String str = new String(chars, 0, len); 将字符转化成字符串输出即可System.out.println(str);*/}ir.close();wr.close();long l2 = System.currentTimeMillis();System.out.println(l2 - l1);// BufferedReader 和 BufferedWriterInputStream is = new FileInputStream("c:\\abc.txt");OutputStream os = new FileOutputStream("d:\\abc.txt");BufferedInputStream bis = new BufferedInputStream(is);BufferedOutputStream bos = new BufferedOutputStream(os);long l3 = System.currentTimeMillis();byte[] bytes = new byte[10];int len1 = 0;while((len1 = bis.read(bytes))!=-1){bos.write(bytes, 0, len);System.out.println(new String(bytes, 0, len1));}bis.close(); bos.close(); is.close();os.close();long l4 = System.currentTimeMillis();System.out.println(l4-l3);
/*// 字节输入输出流// FileInputStream和FileOutputStreamFileInputStream fis = new FileInputStream("d:\test1.txt");FileOutputStream fos = new FileOutputStream("d:\test2.txt");long l1 = System.currentTimeMillis();long l2 = System.currentTimeMillis();System.out.println(l2 - l1);// InputStream is = new FileInputStream("c:\\abc.txt");OutputStream os = new FileOutputStream("d:\\abc.txt");BufferedInputStream bis = new BufferedInputStream(is);BufferedOutputStream bos = new BufferedOutputStream(os);long l3 = System.currentTimeMillis();byte[] bytes = new byte[10];int len1 = 0;while((len1 = bis.read(bytes))!=-1){bos.write(bytes, 0, len);System.out.println(new String(bytes, 0, len1));}bis.close(); bos.close(); is.close();os.close();long l4 = System.currentTimeMillis();System.out.println(l4-l3);*/}}

6、利用DataInputStream和DataOutputStream读写文件。

将数字1-100、字母A-Z、a—z写出至文件D:\abc.txt中,然后读取出来,显示在屏幕上。

import java.io.*;public class Main {public static void main(String[] args) throws IOException {FileOutputStream output = new FileOutputStream("D:\\abc.txt");DataOutputStream dO= new DataOutputStream(output);FileInputStream input = new FileInputStream("D:\\abc.txt");DataInputStream dI = new DataInputStream(input);//写进文件for(int i = 1; i <= 100; i++) {dO.writeInt(i);}for(int i = 65; i <= 90; i++) {//A-ZdO.writeChar(i);}for(int i = 97; i <= 122; i++) {//a-zdO.writeChar(i);}dO.close();//读取输入流显示在屏幕上for(int i = 1; i < 100; i++) {System.out.print(dI.readInt()+" ");}System.out.println(dI.readInt());for(int i = 65; i < 90; i++) {System.out.print(dI.readChar());}System.out.println(dI.readChar());for(int i = 97; i < 122; i++) {System.out.print(dI.readChar());}System.out.println(dI.readChar());dI.close();}
}

Java中各种读写文件的方法相关推荐

  1. java中如何读写文件_JAVA: 读写文件的几种方法

    如果您使用java8,可以也参考这篇文章:JAVA: Java8流逐行读取文件 import java.io.BufferedReader; import java.io.BufferedWriter ...

  2. Java中存取Rtf文件

    狂找了几天在Java中存取Rtf文件的方法,结果只能用两个字形容--郁闷!!! 本来不想写总结的,不过想 到这几天的辛苦,还是决定把找到的一点小东东写下来,希望能对以后的应用有所启迪. 下面是我找到的 ...

  3. Java中存取Rtf文件的程序

    狂找了几天在Java中存取Rtf文件的方法,结果只能用两个字形容--郁闷!!! 本来不想写总结的,不过想 到这几天的辛苦,还是决定把找到的一点小东东写下来,希望能对以后的应用有所启迪. <scr ...

  4. java cmd找不到文件_cmd中输入java找不到文件解决方法

    很多小伙伴都需要运行java代码,但是最近很多的小伙伴都遇到了找不到文件这个问题很是棘手,那么这个问题该怎么解决呢?下面就为大家带来解决方法. cmd中输入java找不到文件怎么办: 方法一. 1.找 ...

  5. java读取同包文件_Java实现从jar包中读取指定文件的方法

    本文实例讲述了Java实现从jar包中读取指定文件的方法.分享给大家供大家参考,具体如下: 以下的Java代码实现了从一个jar包中读取指定文件的功能: /** * This class implem ...

  6. 【java】java中内存映射文件和IO

    转载:https://leokongwq.github.io/2017/02/25/java-memorymapped-file-and-io.html 对大多数Java开发人员来说,Java中的内存 ...

  7. 【转】Java中获取文件大小的正确方法

    [转]Java中获取文件大小的正确方法 本文出处:http://blog.csdn.net/chaijunkun/article/details/22387305,转载请注明.由于本人不定期会整理相关 ...

  8. 使用c++进行Windows编程中各种操作文件的方法 【转】

    https://www.zhaokeli.com/article/8232.html 使用c++进行Windows编程中各种操作文件的方法 [转] 来源:赵克立博客 分类: C/C++ 标签:--发布 ...

  9. Java中如何读写cookie (二)

    Java中删除cookie Cookie[]   cookies=request.getCookies();        //cookies不为空,则清除        if(cookies!=nu ...

  10. matlab分析xml文件_如何在Java中读取XML文件(DOM分析器)

    matlab分析xml文件 Today we will learn how to read the XML file in Java. We will also learn how to parse ...

最新文章

  1. DeviceToken 获取失败,原因:Error Domain=NSCocoaErrorDomain Code=3000 未找到应用程序的“aps-environment”的授权字符串......
  2. AutoML Vision教程:训练模型解决计算机视觉问题,准确率达94.5%
  3. CentOS7 3.项目持续交付脚本
  4. 芯片IC附近为啥要放0.1uF的电容?看完秒懂~
  5. android 前置摄像头预览时 镜像翻转_全面屏时代,原来手机前置摄像头都隐藏着一些缺点,你发现了吗?...
  6. (转载)linux中编译安装log4cpp
  7. 如何成为高级测试人?
  8. HashSet底层存储元素的源码分析
  9. Yii 2.0 权威指南(1) 第一次问候
  10. mysql as 后面字段,mysql 字段as详解及实例代码
  11. 新唐N76E003AT20PIN对PIN完美替代STM8S003F3P6
  12. opencv调用海康威视摄像头
  13. MYSQL实现排序分组取第一条sql
  14. 二元置信椭圆r语言_医学统计与R语言:Meta 回归作图(Meta regression Plot)
  15. 股票指标 PHP,怎样将股票指标改为选股指标
  16. 词法分析☞DFA语言识别
  17. 雷锋网特约专访易科成志创始人、CEO潘真
  18. 青海国家沙漠公园分布及功能区划
  19. 36氪| 中国企服软件金榜-项目管理软件排名揭晓
  20. 项目前期准备的重要性

热门文章

  1. 无码间串扰的基带传输特性
  2. 基于OpenCV的银行卡号识别系统实现(三)-----输入图像的处理+代码实现
  3. figtree需要在JAVA下运行吗,科学网—Inno setup 制作安装文件以编译FigTree为例 - 张金龙的博文...
  4. 机器人动力学——拉格朗日法
  5. 视频压制探索与B站视频压制参数解析
  6. cmd复制文件到其他目录
  7. HDB3码和AMI码通过Matlab实现编码和解码
  8. 中海达数据怎么转rinex_GPS_OEM原始数据向Rinex格式转换的方法
  9. 邮件服务器的功能以及相关工作原理
  10. 性能测试--11Beanshell的脚本开发技术