zoukankan      html  css  js  c++  java
  • java File (文档流)

    一、   数据流的基本概念

    1.数据流

    在Java中把不同的数据源与程序之间的数据传输都抽象表述为“流”(stream),以实现相对统一和简单的输入/输出操作方式。传输中的数据就像流水一样,也称为数据流。

    2 .I/O数据流的分类方式

    数据流分为输入流和输出流两类。输入流只能读取不能写。而输出流只能写不能读。(这里站在程序的角度来确定出入方向,即将数据从程序外部传送到程序中谓之“输入”数据,将程序中的数据传送到外部谓之“输出”数据。

    3.缓冲流(Buffered Stream)

    对数据流的每次操作都是以字节为单位进行的,既可以向输出流写入一个字节,也可从输入流中读取一个字节。显然效率太低,通常使用缓冲流,即为一个流配置一个缓冲区,一个缓冲区就是专门传送数据的一块内存。

    4.数据源(Data Sourcc):是指那些能够提供数据的地方,包括键盘、磁盘文件、网络接口等。

    5.数据宿(Data Sink):指能够接收数据的地方,可以是磁盘文件、网络接口以及显示器、打印机等外部设备。(数据宿也可认为是数据传输的目的地)

    二、节点流和处理流

    根据数据流所关联的是数据源还是其他数据流,可分为节点流(Node Stream)和处理流(Processing Stream)

    节点流可以从/向一个特定的地方读/写数据。

    处理流是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现增强的数据读/写功能,处理流并不直接连接到数据源。

     

    三、   字符流

    1.字符输入流Reader

    Reader类为所有面向字符的输入流的超类,声明为java.io中的抽象类。

    public int read():读取一个字符,返回的是读到的那个字符。如果读到流的末尾,返回-1。

    public int read(char[] cbuf):将读到的字符存入指定的数组中,返回的是实际读取的字符数。如果读到流的末尾,返回-1。

    public abstract int read(char[] cbuf,int off,int len):将读到的字符存入数组的指定位置(off),每次最多读len个字符,返回实际读取的字符数。如果读到流的末尾,返回-1。

    close():读取字符其实用的是window系统的功能,使用完毕后,进行资源的释放。

     

    2.字符输出流writer

    Weiter类为所有面向字符的输出流的超类,声明为java.io中的抽象类。

    public void write(int c):将一个字符写入到流中。

    public void write(char[]):将数组中的字符依次写出。

    public abstract void write(char[] bcbuf,int off,int len):将数组中下标off开始的len个字符写出。

    public void write(String):将一个字符串写入到流中。

    public abstract void flush():刷新流,将流中的数据刷新到目的地中,流还存在。

    public abstreact void close():关闭资源,关闭前会先调用flush,刷新流中的数据去目的地,然后流关闭。

    四.(java)中file类的常用方法

    File():构造函数,一般是依据文件所在的指定位置来创建文件对象。  
    CanWrite():返回文件是否可写。  
    CanRead():返回文件是否可读。 
    CompareTo(File pathname):检查指定文件路径间的顺序。 
    Delet():从文件系统内删除该文件。 
    DeleteOnExit():程序顺利结束时从系统中删除文件。 
    Equals(Object obj):检查特定对象的路径名是否相等。 
    Exists():判断文件夹是否存在。 
    GetAbsoluteFile():返回文件的完整路径。 
    GetAbsolutePath():返回文件的完整路径。 
    GetName():返回文件名称。 
    GetParent():返回文件父目录路径。 
    GetPath():返回文件的潜在相对路径。 
    GetParentFile():返回文件所在文件夹的路径。 
    HashCode():返回文件哈希码。 
    IsDirectory():判断该路径指示的是否是文件。 
    IsFile():判断该路径指示的是否是文件。 
    LastModified() :返回文件的最后修改时间标志。 
    Length():返回文件长度。 
    List():返回文件和目录清单。 
    Mkdir():生成指定的目录。 
    RenameTo(File dest):更名文件。 
    SetReadOnly():将文件设置为可读。 
    ToString():返回文件状态的字符串。 
    ToURL():将文件的路径字符串转换成URL 

    File.GetCreationTime 读取创建时间 
    file.SetCreationTime 设置创建时间 
    File.GetLastAccessTime   读取最后访问时间 
    File.SetLastAccessTime   设置最后访问时间 
    File.GetLastWriteTime 读取最后修改时间 
    File.SetLastWriteTime 设置最后修改时间 
    File.GetAttributes 读取文件属性 

    File.SetAttributes 设置文件属性

    4.1  判断方法

      1 boolean canExecute()  判断文件是否可以执行

      2 boolean canRead() 判断文件是否可读

      3 boolean canWrite() 判断文件是否可写

      4 boolean exist() 判断文件是否存在

      5 boolean isDirectory() 判断文件是目录

      6 boolean isFile() 判断是否是文件

      7 boolean canHidden() 判断文件是否可见

      8 boolean isAbsolute() 判断文件是否是绝对路劲 ,文件不存在也能判断

     4.2获取方法

     1.String getName()
     2.String getPath()
     3.String getAbsolutePath()
     4.String getParent()//如果没有父目录返回null
     5.long lastModified()//获取最后一次修改的时间
     6.long length()
     7.boolean renameTo(File f)
     8.File[] liseRoots()//获取机器盘符
    9.String[] list()
    10.String[] list(FilenameFilter filter)

    五。代码实例方法使用:

    package com.rimi.week6_1;

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    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.util.Arrays;
    import java.util.Date;

    public class Test1 {
    public static void main(String[] args) {

    String fName="889923,txt";
    //fw(fName,"afiokjh");
    //fw("book.txt","abacedfawgajppjp1234569");
    //fr( "book.txt");
    //fr2( fName);
    //fd( "book.txt");

    // fw("s8c.txt","woaibijxjijs");
    // fw("des.txt","123");

    //copyContent( "s8c.txt", "des.txt");
    //fw("sb.txt","w123");
    //appendContent("sb.txt","woqisilile ");
    //tempFile();
    //fw("123.txt","woaibaoxoe");
    //changeDate();
    //getFileSize("wqe.txt","sfwofio");
    //changeName();
    // changeChmod();
    //ifExist("weo");

    //createDir("/Users/rimi/Desktop/1/2/3/4/5/6");
    //delete("/Users/rimi/Desktop/1");
    // createDir( "/Users/rimi/Desktop/.j1702");//创建隐藏文件
    //isHidden("/Users/rimi/Desktop/.j1702");//判断是不是隐藏文件

    int index=0;
    // printDirsStruct("/Users/rimi/Desktop/java1702",index);
    //printFile("/Users/rimi/Desktop/java1702");
    //FileDemo3 ();
    FileDemo5 ();
    }
    public static void printFile(String fileName){
    File file =new File (fileName);//返回由此抽象路径名表示的文件或目录的名称。
    if(file.isDirectory()){
    System.out.println(fileName+file.isDirectory());
    }
    System.out.println(file.getName());
    for (String se : file.list()) {
    File qu=new File(se);
    System.out.println("文件结构:"+qu);
    }
    }

     

     


    //打印文件的目录结构
    public static void printDirsStruct(String fileName,int index){
    File file =new File(fileName);
    System.out.println(fileName+file.isDirectory());
    if(file.isDirectory()){
    for(int i=0;i<index;i++){
    System.out.print("_");
    }
    System.out.println(file.getName());
    for (String su : file.list()) {
    String newfile=fileName+"/"+su;
    File fq=new File(newfile);
    // System.out.println("目录结构:"+newfile);
    if(fq.isDirectory()){
    printDirsStruct(newfile,(index+2));
    }
    }
    }

    }

     


    //判断是不是隐藏文件
    public static void isHidden(String fileName){
    File file =new File (fileName);
    if(file.isHidden()){
    System.out.println(file+"是隐藏文件吗?"+file.isHidden());
    }
    }

     

    //递归删除目录

    public static void delete(String path){
    File file=new File(path);//打开这个file文件
    if(file.isDirectory()){//2.判断这个file是不是目录
    if(file.list().length>0){//3.如果是目录,判断里面还有没有子目录
    for (String fw : file.list()) {//4.如果有子目录就继续调用本方法
    String arr=path+"/"+fw;
    System.out.println("arr"+arr);
    delete(arr);//调用本身的时候就停止下面的代码执行
    }
    }


    }
    if(file.delete()){//如果
    System.out.println(path+"目录删除成功");
    }
    }

     


    //创建目录
    public static void createDir(String path){
    File file =new File (path);
    //file.mkdir();创建单个目录
    //System.out.println("成功创建目录"+path+file.mkdirs());
    if(file.mkdirs()){
    System.out.println("创建目录成功");
    }else{
    System.out.println("创建目录失败");
    }

    }

     

    //判断文件和目录是否存在
    //file.exists()句柄,检测文件是否存在
    public static void ifExist(String fileName){
    try{
    File file=new File(fileName);
    System.out.println(fileName+"文件存在吗?"+file.exists());
    }catch(Exception e){

    }
    }


    //设置文件只读
    public static void changeChmod() {
    try {
    File file=new File("sb.txt");
    System.out.println("设置文件为只读成功了吗?"+file.setReadOnly());
    System.out.println("文件可以写入吗?"+file.canWrite());
    }catch(Exception e){

    }
    }

    //文件的重命名
    public static void changeName() {
    try {
    File oldName = new File("123.txt");
    File newName=new File("wer.txt");
    if(oldName.renameTo(newName)) {
    System.out.println("已 重命名");
    }else {
    System.out.println("Error");
    }

    }catch(Exception e) {

    }
    }

     


    //获取文件的大小
    //fw.isFile()测试此抽象路径名表示的文件是否是一个标准文件
    //fw.exists()判断这个文件存不存在
    public static void getFileSize(String fileName,String content) {
    try {
    File fw=new File(fileName);
    FileWriter fm=new FileWriter(fw);
    fm.write(content);
    fm.close();
    if(!fw.exists()||!fw.isFile() ){
    System.out.println("文件不存在");
    }
    System.out.println(fileName+"的大小是:"+fw.length());
    }catch(Exception e) {

    }
    }

    //修改文件最后的修改日期
    public static void changeDate(){
    try {
    File fl = new File("sb.txt");
    // fl.createNewFile();
    Date filetime = new Date(fl.lastModified());//获取最后修改时间
    System.out.println("修改之前"+filetime.toString()); //输出时间
    //设置最后修改时间
    System.out.println("修改时间是否成功"+fl.setLastModified(System.currentTimeMillis()+1000000));
    filetime = new Date(fl.lastModified());//获取最后修改后的最后修改时间
    System.out.println("修改之后:"+filetime.toString());
    } catch (Exception e) {
    // TODO: handle exception
    }
    }

    //创建临时文件
    //file.exists()表示判断文件是否存在
    public static void tempFile() {
    File file=new File("tempTest.txt");
    if(file.exists()) {
    System.out.println("文件已经存在");
    }else {
    System.out.println("文件不存在");
    try {
    FileWriter fw=new FileWriter(file);
    fw.write("dfhiowjf");
    fw.close();
    file.createNewFile();
    System.out.println("创建临时文件成功");
    file.deleteOnExit();//文件在程序退出的时候被删除
    Thread.sleep(10000);//文件显示停留10秒,
    }catch(Exception e) {

    }
    }
    }

     


    //追加文件内容
    public static void appendContent(String fileName,String content) {
    try {

    BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
    bw.write("w123");
    bw.close();
    bw=new BufferedWriter(new FileWriter(fileName,true));
    bw.write(content);
    bw.close();

    }catch(Exception e){

    }
    }

    //文件内容的复制 src 要被复制的文件, des 接收复制内容的文件
    public static void copyContent(String src,String des) {
    try {
    // 源文件
    InputStream in =new FileInputStream(new File(src));
    // 目标文件
    OutputStream out=new FileOutputStream(new File(des));
    //1.创建每次读取的大小
    byte[]buf=new byte[100];
    int len;
    //读写
    while((len =in.read(buf))>0) {
    out.write(buf,0,len);
    }
    in.close();
    out.close();
    }catch(Exception e) {

    }
    }


    //删除文件
    //File 文件句柄
    public static void fd(String fName) {
    try{
    // 获取文件句柄
    File f=new File(fName);
    //判断是否被删除
    if(f.delete()) {
    System.out.println("文件删除成功");

    }else {
    System.out.println("文件删除失败");
    }

    }catch(Exception e) {

    }
    }


    /*读取文件里面的内容
    * readLine()读取一个文本行。
    BufferedReader 获取文件读取句柄,读取文件内容()
    */
    public static void fr2(String fName) {
    try {
    FileReader fr=new FileReader(fName);
    BufferedReader br =new BufferedReader(fr);
    String str;
    while ((str=br.readLine())!=null){
    System.out.println(str);
    }
    br.close();//关流
    fr.close();
    }catch(IOException e) {

    }
    }

     

    //读取文件里面的内容
    //FileReader 文件读句柄
    //fr.read(ca,0,15)ca 表示读取的数组名0表示从什么位置开始读取15表示读取的长度
    //“IoException“(流异常,通常用在文件读取中)是”Exception”(用在所有的异常处理中)的一个分支,
    //也就是说“Exception”的范围更
    public static void fr(String fName) {
    try {
    FileReader fr=new FileReader(fName);
    char[]ca=new char[14];
    fr.read(ca, 4, 10);
    System.out.println("ca==="+Arrays.toString(ca));
    fr.close();
    }catch(Exception e) {
    e.printStackTrace();
    }
    }

     

    //创建文件名为rtuw.txt内容为afiokjh
    public static void fw(String fName, String content) {
    try {

    FileWriter fw =new FileWriter(fName);

    fw.write(content);
    fw.close();

    }catch(IOException e) {

    }
    }

    // 列出磁盘下的文件和文件夹
    public static void FileDemo3 (){

    File[] files =File.listRoots();
    for(File file:files){
    System.out.println(file);
    if(file.length()>0){
    String[] filenames =file.list();
    for(String filename:filenames){
    System.out.println(filename);

    }
    }
    }

    }
    // 利用递归列出所有文件
    public static void FileDemo5 (){

    File f =new File("/Users/rimi/Desktop");
    showDir(f);
    }
    public static void showDir(File dir){
    System.out.println(dir);
    File[] files =dir.listFiles();
    for(File file:files){
    if(file.isDirectory())
    showDir(file);
    else
    System.out.println(file);
    }
    }

    public static void FileDemo4() {

       
            File[] files =File.listRoots();
            for(File file:files){
                System.out.println(file);
                if(file.length()>0){
                    String[] filenames =file.list(new FilenameFilter(){
                        //file 过滤目录 name 文件名
                        public boolean accept(File file,String filename){
                            return filename.endsWith(".mp3");
                        }
                    });
                    for(String filename:filenames){
                        System.out.println(filename);
                    }
                }
            }
        
     
    }

    }

    六。file 文档流综合应用

    package com.rimi.week6_1;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.util.Scanner;
    /*
     * 基于文件系统存储的 ATM 用户系统
     * 功能: 注册,登陆,存钱,取钱,注销
     * 1.每一个用户账户创建一个文件
     * 2。文件名使用用户名定义
     * 3.密码为6位
     * 4.最多只能存100万,超过提示钱太多了
     * 5.注销的时候要注意,账户里面没有钱
     * 6.注册的时候要注意,密码必须为6位
     * 7.判断账号是否重复
     * 8.取钱要注意余额够不够
     * 9.所有操作都可以循环进行
     * 
     */
    public class NewAtm {
        
        public static void main(String[] args) throws Exception {
            System.out.println("********欢迎使用花旗银行*********");
            System.out.println("请输入选项:1.注册  2.登陆  ");
        Scanner in=new Scanner(System.in);
        int function=in.nextInt();
        if(function==1){
            register();
        }
        if(function==2){
            login();
        }
    }
    //************注册账号*******************
    public static void  register()throws Exception{
        
        System.out.println("请输入注册的账号(账号长度为9位数):");
        Scanner in=new Scanner(System.in);
        String account=in.next();
        if(account.length()==9){
            
                File file =new File(account);
                if(!file.exists()){
    
                    a1:
                    while(true){
                    System.out.println("请输入账户密码(密码的长度为6位):");
                    String    password=in.next();
                    if(password.length()==6){
                        System.out.println("请再次输入账户密码:");
                        String    password1=in.next();
                        if(password.equals(password1)){
                
                            System.out.println("请输入开户金额:");
                            String Money=in.next();
                            if(!ifCharacter(Money)){
                                FileWriter fw = new FileWriter(account);
                            BufferedWriter bw = new BufferedWriter(new FileWriter(account,true));
                            String account1=account+password+Money;
                            bw.write(account1);
                            fw.close();
                            bw.close();    
                            System.out.println("恭喜你账号注册成功");
                            System.out.println("你的账户信息为:");
                            System.out.println("账号为"+account+"
    "+"密码为:"+password+"
    "+"账户余额为:"+Money+"元"+"
    ");
                            login();
                            return;
                            }else {
                                System.out.println("你输入的不是有效数字!请重新输入:");
                                register();
                                System.out.println("请选择:1. 退出系统");
                                int b=in.nextInt();
                                if(b==1) {
                                    return;
                                }
                            
                            }
                        }else{
                            System.out.println("两次输入的密码不一样");
                            continue a1;
                        }
                    }else{
                        System.out.println("你输入的账号长度不正确,请重新输入");
                        continue a1;
                    }
                    
                    }
                    
                    }else{
                        System.out.println("你输入的账号已经存在!请选择:1.重新输入  2.登录账号");
                        int v=in.nextInt();
                        switch(v) {
                        case 1:  register();
                        break;
                        case 2:login();
                        break;
                        }
                    }
            }
        else{
            System.out.println("你输入的账号长度不正确,请重新输入!");
             register();
        }
        
    }
    //**********登录页面****************
    
    public  static void login() throws Exception{
        
        System.out.println("请输入账号:");
        Scanner in=new Scanner(System.in);
        String account=in.next();
        
        File file =new File(account);
        if(file.exists()){
            System.out.println("账号存在");
        
            System.out.println("请输入你的密码:");
            
            String newpassword=in.next();
            
                FileReader fr = new FileReader(account);
                 
                    // BufferedReader 创建一个文件内容读取句柄
                    BufferedReader br = new BufferedReader(fr);
                    String str = br.readLine();
                    String s =str.substring(9,15);
                fr.close();
            
                if(s.equals(newpassword)){
                    
                    System.out.println("密码验证成功");
                    longin1(account);
                }else{
                    System.out.println("密码验证失败");
                    System.out.println("你的账号不存在!1.注册新账号  2.重新输入");
                    
                    int function=in.nextInt();
                    if(function==1){
                         register();
                    }
                    
                    if(function==2){
                        login();
                    }
                }
        
        }else{
            System.out.println("账号不存在!1.注册新账号   2.退出");
            int Options=in.nextInt();
            if(Options==1){
            
                register();
            }
            if(Options==2){
                System.out.println("欢迎使用花旗银行!");
                return;
            }
            
            }
        }
    //************登录页面1************
    public  static void longin1(String account) throws Exception{
        System.out.println("请输入选项:1.查询  2.存钱  3.取钱 4.注销账号  5.修改密码  6.退出系统");
        Scanner in=new Scanner(System.in);
        int function1=in.nextInt();
        if(function1==1){
            Inquiry(account);
        }
        if(function1==2){
            saveMoney(account);
        }
        if(function1==3){
            drawMoney(account);
        }
        if(function1==4){
            writeOff(account);
        }
        if(function1==5){
            ChangePassword( account );
        }
        
        
        if(function1==6) {
            System.out.println("欢迎使用花旗银行!");
            return;
        }
    }
        //*************查询***********    
    public static void  Inquiry(String account) throws Exception{
        FileReader fr = new FileReader(account);
            // BufferedReader 创建一个文件内容读取句柄
            BufferedReader br = new BufferedReader(fr);
            String str = br.readLine();
            String s =str.substring(15,str.length());
            System.out.println("账户余额为:"+s);
        fr.close();
        System.out.println("请选择: 1.返回  2.退出系统"); 
        Scanner in=new Scanner (System.in );
        int Options1=in.nextInt();
        if(Options1==1){
        
            longin1( account); 
        }
        if(Options1==2){
            System.out.println("欢迎使用花旗银行!");
        }
    
    }
        //***********存钱******************
    public  static void saveMoney( String account) throws Exception{
        Scanner in=new Scanner(System.in);
        System.out.println("请存入金额(最多存入100万):");
        String newMoney=in.next();
            if(!ifCharacter(newMoney)){
                
                Double cMoney = Double.valueOf(newMoney);
                if(cMoney>1000000){
                    System.out.println("对不起!你输入的金额已经超限!");
                    System.out.println("请选择:1.重新输入  2.返回"); 
                int b=in.nextInt();
                switch(b){
                case 1:saveMoney( account);
                break;
                case 2:
                    longin1(account);
                    break;
                }
                    
                }else{
                 cMoney = Double.valueOf(newMoney);
                
                FileReader fr = new FileReader(account);
                 
                // BufferedReader 创建一个文件内容读取句柄
                BufferedReader br = new BufferedReader(fr);
                String str = br.readLine();
                String s2 =str.substring(0,15);
                String s =str.substring(15,str.length());
            fr.close();
            try {
                
                Double b = Double.valueOf(s);
                Double    Money1=cMoney+b;
                String Money2 = String.valueOf(Money1);
                BufferedWriter bv = new BufferedWriter(new FileWriter(account));
                
                bv.write(s2+Money2);
                bv.close();    
                System.out.println("存钱已经完成!");
                 
                    System.out.println("账户余额为:"+Money1);
                fr.close();
                
                System.out.println("请选择:1.返回 2.退出系统");
                int u=in.nextInt();
                if(u==1){
                 longin1(account);
                }
                if(u==2){
                    System.out.println("欢迎使用花旗银行!");
                    }
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }
                }
            }else{
                System.out.println("你输入的不是有效数字,请重新输入!");
                saveMoney(account);
            }
        
    
    }
    //*************取款******************
    public  static void drawMoney(String account) throws Exception{
        
        Scanner in=new Scanner(System.in);
        System.out.println("请输入取款金额:");
        String newMoney1=in.next();
            if(!ifCharacter(newMoney1)){
                
                Double cMoney1 = Double.valueOf(newMoney1);
                FileReader fr = new FileReader(account);
                 
                // BufferedReader 创建一个文件内容读取句柄
                BufferedReader br = new BufferedReader(fr);
                String str = br.readLine();
                String s2 =str.substring(0,15);
                String q =str.substring(15,str.length());
                fr.close();
                br.close();
                Double OldMoney = Double.valueOf(q);
                if(cMoney1>OldMoney){
                    System.out.println("对不起!你金额不足!");
                    System.out.println("请选择:1.重新输入  2.返回"); 
                int b=in.nextInt();
                switch(b){
                case 1: drawMoney( account);
                break;
                case 2:
                    longin1(account);
                    break;
                }
                    
                }else{
                
            try {
                
                Double    Money1=OldMoney-cMoney1;
                String Money2 = String.valueOf(Money1);
                BufferedWriter bv = new BufferedWriter(new FileWriter(account));
                bv.write(s2+Money2);
                bv.close();
                System.out.println("取款已经完成!");
                System.out.println("账户余额为:"+Money1);
                        fr.close();
                        
                        System.out.println("请选择:1.返回 2.退出系统");
                        int u=in.nextInt();
                        if(u==1){
                         longin1(account);
                        }
                        
                        if(u==2){
                            System.out.println("欢迎使用花旗银行!");
                            }
                            
                    
                
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }
                }
            }else{
                System.out.println("你输入的不是有效数字,请重新输入!");
                saveMoney(account);
            }
        
    
        
    }
    //***************注销*************
    public  static void writeOff(String account) throws Exception{
        
        FileReader fr = new FileReader(account);
        BufferedReader br = new BufferedReader(fr);
        String str = br.readLine();
        String q =str.substring(15,str.length());
        fr.close();
        br.close();
        Double OldMoney = Double.valueOf(q);
        if(OldMoney>0) {
            System.out.println("你的账户中有余额,不能注销!");
            System.out.println("请选择:1.返回     2.退出系统"); 
            Scanner in=new Scanner(System.in);
            int b=in.nextInt();
            if(b==1){
        longin1(account);
            }
            if(b==2){
                System.out.println("欢迎使用花旗银行!");
                    }
            
            
        }else {
            try {
            File f=new File(account);
            
             if(f.delete()) {
                System.out.println("账户注销成功!");
                return;
            }else {
                System.out.println("账户注销失败!");
                return;
            }
            }catch(Exception e) {
                
            }
        }
    }
    public static void ChangePassword(String account ) throws Exception{
        System.out.println("请输入原始密码:");
        Scanner in=new Scanner (System.in);
        String oldPassword=in.next();
        FileReader f =new FileReader(account);
        BufferedReader bn=new BufferedReader(f);
        String  mb =bn.readLine();
        String  vn=mb.substring(9,15);
        String vn1=mb.substring(0, 9);
        String  vn2=mb.substring(15,mb.length());
        f.close();
        bn.close();
        if(oldPassword.equals(vn)){
            System.out.println("请输入新密码:");
            String  newpass1=in.next();
            System.out.println("请再次输入新密码:");
            String newpass2=in.next();
            if(newpass1.equals(newpass2)){
                File file=new File(account);
                FileWriter  xin=new FileWriter(file);
                xin.write(vn1+newpass1+vn2);
                xin.close();
                System.out.println("恭喜你密码已修改成功!");
                System.out.println("请选择:1.返回上一层   2.退出系统");
                int  xu1=in.nextInt();
                if(xu1==1){
                     longin1(account);
                }
                if(xu1==2){
                    System.out.println("欢迎您使用花旗银行!");
                    return;
                }
                
            }else{
                System.out.println("你两次输入的密码不一样!");
                System.out.println("请选择:1.重新输入  2.返回上一层");
                int xu=in.nextInt();
                if(xu==1){
                    ChangePassword( account );
                }
                if(xu==2){
                     longin1(account);
                }
            }
        }else{
            System.out.println("你输入的原始密码有误!请重新输入:");
            ChangePassword(account );        
        }
        
    }
    
    
    
    
    public  static boolean ifCharacter(String sw){
        
        for(int i=0;i<sw.length();i++){
            
            if(!Character.isDigit(sw.charAt(i))){
                return true;
            }
            return false;
        }
        return false;
        }
    
    
    }
    View Code
  • 相关阅读:
    【BZOJ 2565】 最长双回文串
    【BZOJ 2160】 拉拉队排练
    【POI 2010】 Antisymmetry
    【HDU 3068】 最长回文
    【POJ 3974】 Palindrome
    【POJ 2503】 Babelfish
    【POJ 3349】 Snowflake Snow Snowflakes
    【BZOJ 2457】 双端队列
    根文件系统的构建与分析(一)之流程分析
    Linux MTD系统剖析
  • 原文地址:https://www.cnblogs.com/sbj-dawn/p/7140953.html
Copyright © 2011-2022 走看看