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. Lattice绘图

    lattice包提供了用于可视化单变量和多变量数据的一整套图形系统.许多用户转向使用lattice包是因为它能很容易地生成网格图形.网格图形能够展示变量的分布或变量之间的关系. 例:data(mtca ...

  2. pinpoint本地开发——collector

    本地启动collector 启动前准备 启动之前,要先确保本地已经可以正常package,install 必须保证install成功,才能进行后续步骤,无法install或者package参考[pin ...

  3. LeetCode:用HashMap解决问题

    LeetCode:用HashMap解决问题 Find Anagram Mappings class Solution { public int[] anagramMappings(int[] A, i ...

  4. JVM对象

    对象 Java虚拟机采用自动的内存管理和自适应的优化策略.但了解java虚拟机的运行机制和优化策略,写出适合java虚拟机管理的程序对性能提升是有意义的. 逃逸分析:对象的作用范围只在本线程范围,如方 ...

  5. MVC ViewBag不能使用在工程文件中添加引用

    在工程文件中 <ItemGroup> // ... </ItemGroup> 添加引用 <Reference Include="Microsoft.CSharp ...

  6. [原创]关于设置linux中vim 显示行号

    1.更改所有账户配置 直接更改/etc/vimrc vim /etc/vimrc 在vimrc文件的最后添加 set nu 即可 wq退出. 这样,不论使用哪个账号登陆,vim打开后都显示行号 2.为 ...

  7. PyVmomi 使用示例

    PyVmomi: VMware vSphere Python SDK 一.OverView 重点知识: 1.view_type = [vim.VirtualMachine] 2.content.vie ...

  8. find查找文件

    linux下最强大的搜索命令为”find“. 它的格式为”find <指定目录> <指定条件> <指定动作>“: 比如使用find命令搜索在根目录下的所有inter ...

  9. Windows 7 比Windows XP 难用的功能

    Windows 7 的搜索功能做得实在难用,不仅慢,还经常搜不到文件(明明存在的文件却搜不到).相比Windows XP,这个功能差的太远了. Windows 7 的无线连网功能,即使设置为不要自动连 ...

  10. Oracle的select检索数据

    --Select语法 select [distinct | All] select_list from table_list [where_clause] [group_by_clause] [Hav ...