据说,java读写文件要写很多,贼麻烦,不像c艹,几行代码就搞定。只能抄抄模板拿来用了。

输入输出流分字节流和字符流。先看看字符流的操作,字节转化为字符也可读写。

一、写入文件

1.FileWriter类:

FileWriter fw=new FileWriter("hello");//在workspace工作空间里创建文件,文件名为hello

FileWriter fw=new FileWriter("E:\\hello");//在E盘创建文件,文件名为hello

FileWriter fw=new FileWriter("E:\\hello.txt");//在E盘创建txt文件hello

如果在相同位置已经有同名文件会覆盖原来的文件,即一个新建的空文件。

如果路径不对则会抛出异常,例如:java.io.FileNotFoundException: Z:\hello (系统找不到指定的路径。)

2.BufferedWriter类:

将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入。可以指定缓冲区大小,或者可以接受默认大小。 默认值足够大,可用于大多数用途。

1 import java.io.*;2

3 public classMyTest9 {4 public static voidmain(String []args) {5 try{6 FileWriter fw=new FileWriter("E:\\hello");//在workspace工作空间里创建文件

7 BufferedWriter bw=new BufferedWriter(fw);//创建bw对象专门为fw对象写入字符流,fw是某个文件引用(对象)

8 bw.write("Hello world!\n"); //为文件fw写入字符

9 bw.write('\n');//换行

10 bw.write("\n");//换行

11 bw.newLine();//换行,并非所有平台都使用换行符('\ n')来终止行。 因此,调用此方法来终止每个输出行,因此优选直接写入换行符。

12 bw.write("Oh no!\n");13 String s="shoulinniao\n";14 bw.write(s);15 bw.write(s,0,5);16 bw.newLine();17 char[] s2=new char[10];18 for(int i=0;i<10;i++)19 s2[i]=(char)(i+'0');20 bw.write(s2);21 bw.newLine();22 bw.write(s2,0,8);//从0开始截取,截8个长度,即下标0-7

23 bw.newLine();24 int a=19;25 bw.write(a);//数字读不进去,要转成字符

26 bw.newLine();27 bw.write(8);28 bw.newLine();29 bw.write(s.valueOf(a));//转化为字符型

30 bw.close();//不关掉的话duqu.txt里没东西

31 }catch(Exception ex){32 ex.printStackTrace();33 }34 }35 }

写入文件

二、读出文件

1.File类:

File(String path);//通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。

String [] list();//返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。

String getPath();//将此抽象路径名转换为路径名字符串。

Boolean isAbsolute();//判断是否为绝对路径

Boolean isDirectory();//判断是否为目录

boolean mkdir();//创建由此抽象路径名命名的目录。

boolean mkdirs();//创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。如果目录存在不会重建空目录

1 importjava.io.File;2

3 public classMyTest10{4 public static voidmain(String []args) {5 try{6 File ffwq=new File("E:\\");//创建代表路径的对象,并不是创建一个文件

7

8 File ff=new File("E:\\new_directory3");9 ff.mkdirs(); //在路径ff下新建一个目录目录名new_directory10 //打印出目录下的内容

11 if(ffwq.isDirectory()){12 String[] de=ffwq.list();13 for(int i=0;i

24 System.out.println(ff.getAbsolutePath());25 //删除对象代表的文件.如果目录下有文件也会返回false,删除不成功也会返回false。

26 boolean delet=ff.delete(); //目录下是空的才能删除,返回true,否则返回false

27 System.out.println(delet);28 }catch(Exception ex){29 ex.printStackTrace();30 }31 }32 }

File类的一些语法

2.FileReader类:

FileReader(File file);//创建一个新的 FileReader ,给出 File读取。

FileReader(String fileName);//创建一个新的 FileReader ,给定要读取的文件的名称。

3. BufferedReader类:

从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。可以指定缓冲区大小,或者可以使用默认大小。 默认值足够大,可用于大多数用途。

BufferedReader(Reader in);//创建使用默认大小的输入缓冲区的缓冲字符输入流。

BufferedReader(Reader in, int sz);//创建使用指定大小的输入缓冲区的缓冲字符输入流。

void close();//关闭流并释放与之相关联的任何系统资源。

String readLine();//读一行字符。

1 public classMyTest8 {2 public static voidmain(String[] args) {3 ArrayList list = new ArrayList();4 try{5 File f=new File("E:\\hello");//创建文件对象f

6 FileReader fr=new FileReader(f); //fr对象 对应f的读出

7 BufferedReader br=new BufferedReader(fr);//br是 对应fr的 读出缓冲区

8 String shuchu=null;9 int i=0;10 while((shuchu=br.readLine())!=null){11 list.add(shuchu);//用一个数组全部存起来方便修改

12 System.out.println(shuchu);13 }14 for(int j=0;j

java 字符流读取_Java 字符流读写文件相关推荐

  1. java io流大全_Java IO流系统整理

    Java IO流的分类 Java中的流,可以从不同的角度进行分类. 按流向分类: 输入流: 程序可以从中读取数据的流. 输出流: 程序能向其中写入数据的流. 按数据传输单位分类: 字节流:以字节(8位 ...

  2. 基于java洗浴中心管理系统_Java IO流详解

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  3. Java入门学习第十七天——字节流读写文件、字节缓冲流拷贝文件

    字节流读写文件 字节流拷贝文件-按单个字节读写 FileInputStream:普通的字节输入流,用来读取数据的 构造方法: ​ public FileInputStream(String pathn ...

  4. java中io流案例_Java IO流的简单使用 通俗易懂 超详细 【内含案例】

    IO流简单使用 输入和输出是相对于程序来说的,读取到程序中叫做输入,写到文件中叫输出. InputStream 字节输入流 InputStream 字节输入流基类,是字节输入流所有类的超类 // 从输 ...

  5. java io 流选择题_java Io流面试题和选择题

    Java对象的序列化指将一个java对象写入OI流中,与此对应的是,对象的反序列化则从IO流中恢复该java对象.下面就由学习啦小编为大家介绍一下java Io流面试题和选择题的文章,欢迎阅读. ja ...

  6. java io流填空题,java面试题选择题_java,Io流面试题和选择题

    Java对象的序列化指将一个java对象写入OI流中,与此对应的是,对象的反序列化则从IO流中恢复该java对象.下面就由小编为大家介绍一下java Io流面试题和选择题的文章,欢迎阅读. java ...

  7. java 输入流关闭顺序_Java IO流中先关闭输出流还是先关闭输入流?为什么?

    java中需要手动释放的资源bai常见的有以下两个: 流相du关资zhi源 流相关资源一般遵循: 1)先开后关dao,先开的输入流,再开的输出流,通过读取输入流写入输出流中,那么应该先关输出流,再关输 ...

  8. java io框架图_Java IO流体系继承结构图解析

    Java IO体系结构看似庞大复杂,其实有规律可循,要弄清楚其结构,需要明白两点: 1. 其对称性质:InputStream 与 OutputStream, Reader 与 Writer,他们分别是 ...

  9. java oracle中文乱码_java字符编码和oracle乱码

    编码问题我仍旧没搞懂,最根本的从哪里来就没搞懂.当页面发送请求,编码到后台是什么编码呢?好吧,我默认的都是utf-8.后台接收参数后,可以在控制台打印出来,我也不清楚是什么编码.然后,就是数据库问题. ...

最新文章

  1. Spring boot 嵌入的tomcat不能启动: Unregistering JMX-exposed beans on shutdown
  2. python练习题:使用循环和函数实现一个摇骰子小游戏
  3. TCP协议详解---上
  4. 严格模式 华为_华为千元机虽然好,但是千万别乱选,这三款才是内行人的最爱...
  5. java mp4 视频时间戳_MP4文件中音视频时间戳的计算
  6. 树莓派i2c python_树莓派2 python i2cPython中chr、unichr、ord字符函数之间的对比
  7. 基于智能的网络空间安全防御
  8. mysqldump 使用备忘
  9. 本地更新github项目_GitHub开源项目2019-03-29更新精选
  10. [RK3399][Android7.1] 调试笔记 --- CPU的serial number读取
  11. 学生管理系统需求分析
  12. 云原生的年代service mesh不止Istio,还有另一个选择-Kuma
  13. 虚拟机ipv4和6都没访问权限_ipv4无访问权限,小编教你ipv4无internet访问权限怎么办...
  14. 计算机视觉最新进展概览2021年10月31日到2021年11月6日
  15. bootstrap4.0图标使用_详解Bootstrap glyphicons字体图标
  16. 如何获取QQ邮箱授权码——步骤详解
  17. 猿创征文|GaussDB(for openGauss):基于 GaussDB 迁移、智能管理构建应用解决方案
  18. 面试时如何用英语自我介绍?
  19. 雅虎NCP:网络黄页的终结者
  20. Spoken English Practice(I'm gonna do something I never thought I'd be able to)

热门文章

  1. lixiang 关于socket的spring例子
  2. 汽车发动机和变速箱相关内容整理
  3. sessionID一直变化。
  4. 无法安装Hyper-V:虚拟机监控程序已在运行中
  5. 构建高效的研发与自动化运维
  6. 打印出所有的“水仙花数“,所谓“水仙花数“是指一个三位数,其各位数字立方和等于该数本身。
  7. 数学知识之西格玛符号
  8. 2023年软件行业展望
  9. 【u238】暴力摩托
  10. js 16转10进制方法