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. VS2013 Pro版本密钥

    Visual Studio Professional 2013 KEY(密钥): XDM3T-W3T3V-MGJWK-8BFVD-GVPKY

  2. 目标检测--之RCNN

    目标检测--之RCNN 前言,最近接触到的一个项目要用到目标检测,还有我的科研方向caption,都用到这个,最近电脑在windows下下载数据集,估计要一两天,也不能切换到ubuntu下撸代码~.所 ...

  3. 使用cocoaPods import导入时没有提示的解决办法

    1.选择target(就是左边你的工程target)—— BuildSettings —— search Paths 下的 User Header Search Paths(如图所示:)    2.双 ...

  4. 斯坦福机器学习视频笔记 Week1 线性回归和梯度下降 Linear Regression and Gradient Descent

    最近开始学习Coursera上的斯坦福机器学习视频,我是刚刚接触机器学习,对此比较感兴趣:准备将我的学习笔记写下来, 作为我每天学习的签到吧,也希望和各位朋友交流学习. 这一系列的博客,我会不定期的更 ...

  5. 同步异步阻塞非阻塞Reactor模式和Proactor模式 (目前JAVA的NIO就属于同步非阻塞IO)

    在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作. 在比较这两个模式之前,我们首先的搞明白 ...

  6. The Great Pan

                                             The Great Pan Time Limit:1000MS     Memory Limit:65536KB    ...

  7. servlet实现验证码

    (博客内容来自:jsp使用servlet实现验证码,以下内容只是不才对原博客的摘抄以便以后翻阅使用) 一.原理: 验证码作为一个图片,在页面中为“画”出来的,它是如何画出来的呢? <生成图片&g ...

  8. Java -- 封装访问控制级别,包, instanceof 运算符, 初始化块

    1. 可以用 package name1.name2; 显式的定义包名, *.class文件位置应该对应包 name1 name2 的目录下. 2. instanceof 运算符 Object obj ...

  9. jQuery旋转插件jquery.rotate.js 让图片旋转

    演示1 直接旋转一个角度 $('#img1').rotate(45); 演示2 鼠标移动效果 $('#img2').rotate({ bind : { mouseover : function(){ ...

  10. request bs4

    requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作, ...