1文件类File

   ❶封装文件或路径的属性。不包括创建和读写文件操作。File实例并不会实际创建文件。不论文件存在与否,可以创建任意文件名的实例。两种实例创建方式如下:  
               new File("c:\\book");//在目录下创建一个File对象
               new File("c:\book\test.text");//以某个文件创建一个File对象
   ❷构造函数: 
              File(pathname:String)//为特定路径名创建对象,路径名为目录或者文件
              File(String parent,String child)//目录parent的child创建对象,child可以是文件名或者子目录
              File(File parent,String child)//目录创建的File对象parent下的child创建对象,child可以是文件名或者子目录

❸对象文件是否存在exsits,可读canRead,可写canWrite(),是否是文件isFile()或者目录isDirectory,是否隐藏isHidden()。返回boolean

❹获得文件名(含后缀)getName(),获得路径名和绝对路径名getpath()(返回创建时候表示路径名或者文件名),getAbsolute()。返回String

❺获得最后修改时间lastModified()《毫秒表示》和文件长度length()。返回Long

❻删除文件delete()和重命名renameTo(File f),替换成f里的文件名。返回Boolean。

❼获得File目录下的文件,返回File[]

定义绝对路径(absolutely)=驱动盘名+目录路径+文件名+文件格式。为了便于与其他平台通用,一般不使用绝对文件名。默认路径为当前路径。

2.写文件类PrintWriter

❶PrintWriter(String );//特定文件名创建,如test.txt

❷PrintWriter(File);//特定文件对象创建

❸print,println,printf写入基本数据类型(Line,Byte,Int,short,long,double,float)以及String,字符数组(使用数组名作参数)。类似于输出到控制台

❹写关闭close()。必须使用,否则无法保存

import java.io.FileNotFoundException;
public class TextIO {
@SuppressWarnings("resource")
public static void main(String[] args) throws FileNotFoundException {
java.io.File file=new java.io.File("test.txt"); //文件写
if(file.exists())
file.delete();//若已经存在该文件即删除
java.io.PrintWriter output=new java.io.PrintWriter(file);
output.println("Ann F Math 92");
output.print("Jack M");
String Jack=new String(" Math 83");
output.println(Jack);
output.close(); } }

3.读文件类Scanner

❶构造函数Scanner(File/String)

❷读关闭close()。可以省略但是建议保留以释放被文件占用之资源

❸是否还有数据可读。hasNext(),hasNextLine()

❹数据读取next*()。如下一个标志(默认),一行Line,Byte,Int,short,long,double,float

数据读取都为令牌读取法,它们均读取用分隔符分分隔的令牌。默认分隔符号为空格,可以使用useDelimiter(String)修改。以nextLine()为例,其读取分隔符开始至行分隔符结束的字符,仅返回行分隔符(window系统,\n)之前的字符,包括空格。

    例如:文本文件test.txt包括"34 56\n"。使用Scanner读取文件的方法赋值
                  Scanner input=new Scanner(new File("test.text"));
                  int intValue=input.nextInt()://值为34
                  String s=input.nextLine();//值为“ 56”,含空格。
    然而,倘若从控制台输入"34回车56回车"
int intValue=input.nextInt()://值为34
String s=input.nextLine();//值为“”,即为空。
Scanner input=new Scanner(System.in);
mport java.io.FileNotFoundException;
import java.util.Scanner;
public class TextIO {
@SuppressWarnings("resource")
public static void main(String[] args) throws FileNotFoundException { java.io.File file=new java.io.File("test.txt"); //文件读
Scanner input=new Scanner(file);
if(!file.exists())
System.out.println("文件"+file.getName()+"不存在");
while(input.hasNext())
System.out.println("+++Name: "+input.next()+"\n Gender: "+input.next()+"\n Score: "+input.nextLine());
input.close(); } }
  输出:
         +++Name: Ann
            Gender: F
            Score:  Math 92
        +++Name: Jack
           Gender: M
           Score:  Math 83

4.文本替换

将文件text.txt中的人名Jack全部替换成Tom,并将修改后的文件写到test1.txt

package TextIO;
import java.io.*;
import java.util.*; public class TextIO {
public static void main(String[] args) throws FileNotFoundException { java.io.File file=new java.io.File("test.txt");
java.io.File file1=new java.io.File("test1.txt");
Scanner input = null; //文件读
if(!file.exists())
{System.out.println("文件"+file.getName()+"不存在");
System.exit(0);}
else
input = new Scanner(file); //文件写
if(!file1.exists())
file1.delete();//若已经存在该文件即删除
PrintWriter output=new PrintWriter(file1); //文件替换
while(input.hasNextLine())
output.println(input.nextLine().replaceAll("Jack", "Tom")); output.close();
input.close();
} }

结果如下:

Java探索之旅(14)——文本I/O与读写的更多相关文章

  1. Java探索之旅(5)——数组

    1.声明数组变量:        double[] array=new double[10];         double array[]=new double[10];       double[ ...

  2. Java探索之旅(1)——概述与控制台输入

    使用的课本: Java语言程序设计(基础篇)----西电 李娜(译) 原著: Introduction to Java Progrmming(Eighth Edition) -----Y.Daniel ...

  3. Java探索之旅(18)——多线程(2)

    1 线程协调 目的对各线程进行控制,保证各自执行的任务有条不紊且有序并行计算.尤其是在共享资源或者数据情况下. 1.1 易变volatile cache技术虽然提高了访问数据的效率,但是有可能导致主存 ...

  4. Java探索之旅(17)——多线程(1)

    1.多线程  1.1线程 线程是程序运行的基本执行单元.指的是一段相对独立的代码,执行指定的计算或操作.多操作系统执行一个程序时会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被 ...

  5. Java探索之旅(16)——异常处理

    1.异常与异常处理 在<java编程思想>中这样定义 异常:阻止当前方法或作用域继续执行的问题.虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来 ...

  6. Java探索之旅(15)——包装类和字符类

    1.包装类 ❶出于对性能的考虑,并不把基本数据类型作为对象使用,因为适用对象需要额外的系统花销.但是某些Java方法,需要对象作为参数,例如数组线性表ArrayList.add(Object).Jav ...

  7. Java探索之旅(13)——字符串类String

    1.初始化 String类是Java预定义类,非基本类型而是引用类型. public class StudyString { public static void main(String[] args ...

  8. Java探索之旅(12)——equals方法及其覆盖

    1.Object中的equals方法 java中的的基本数据类型:byte,short,char,int,long,float,double,boolean.==比较的是值. ❶作用:对于复合类型来说 ...

  9. Java探索之旅(11)——抽象类与接口

    1.Java数据类型       ❶不可变类,是指当创建了这个类的实例后,就不允许修改它的属性值. 它包括:         Primitive变量:boolean,byte, char, doubl ...

随机推荐

  1. ACN经典例题1

    1.韩信点兵 描述相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排.五人一排.七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了.输入3个非负整数a,b,c ,表示每种 ...

  2. LeetCode:存在重复元素【217】

    LeetCode:存在重复元素[217] 题目描述 给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false. 示例 ...

  3. 小程序真机GET请求出现406错误

    问题:微信开发模拟器请求成功,获得数据,但是在真机上出现406请求错误,无法获得请求结果 原因:真机微信小程序的请求头与模拟器不同 怎么发现的:在请求头强制添加Accept即可解决 修复:在请求Hea ...

  4. 图片加载控件Fresco

    使用教程:https://www.fresco-cn.org/docs/index.html  https://github.com/facebook/fresco application初始化fre ...

  5. Linux mint

    最近一直在配置vim, 今天终于配的差不多了,拿出来晒晒,^_^ . 附上一段Linux Mint 的简介(来自Wiki). Linux Mint是一种基于Ubuntu开发出的Linux操作系统.由L ...

  6. 20145229吴姗珊 《Java程序设计》第4周学习总结

    20145229吴姗珊 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 继承与多态 6.1继承共同行为 1.继承基本上就是避免多个类间重复定义共同行为 简单的类的定义 使用s ...

  7. 运行vo总结

    这是基于之前的vo类做的.vo类总结.note参数文件的直接设置在config目录下,比如是default.yaml文件,里面会定义dataset_dir,cmera类的fx,fy,cx,cy,Vis ...

  8. 大话设计模式--状态模式 State -- C++实现实例

    1.状态模式: 当一个对象的内在状态改变时,允许改变其行为,这个对象看起来就像是改变了其类. 状态模式解决的是当控制一个对象状态转换的条件表达式过于复杂, 把状态的判断逻辑转移到表示不同状态的一系列类 ...

  9. 英语发音规则---ea字母组合发音规律

    英语发音规则---ea字母组合发音规律 一.总结 一句话总结:字母组合ea的发音规律,在学习字母组合在单词中的发音规律以前,一定要熟练撑握什么是开音节,什么是闭音节,否则你就不撑握这些发音规律. ea ...

  10. 英语发音规则---L字母

    英语发音规则---L字母 一.总结 一句话总结:[l]音在词首和词尾的发音不同,/l/+其它音节./l/+元音./l/+/j/称它为清晰/l/,发清晰/l/音时,在下一个音即将出出时舌头离开上齿龈,迅 ...