Java面试题(1)

1、编写一个程序,将d:\java 目录下的所有.java 文件复制到d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;


public class Jad2Java {

    public static void main(String[] args) throws Exception {
        //1.定位到文件的路径下
        File javaFile=new File("D:\\java");
        //1.1判断文件夹是否存在,不存在就跑出异常
        if (!javaFile.exists()||!javaFile.isDirectory()) {
            throw new Exception("java文件夹不存在");
        }
        //2.找出所有的以“.Java”为后缀名的文件
        File[] javaFiles= javaFile.listFiles(new FilenameFilter() {
            
            @Override
            public boolean accept(File dir, String name) {
                //System.out.println(name);
                return name.endsWith(".java")?true:false;
            }
        });
        
        //3、创建新的文件夹
        File jadFile=new File("D://jad");
        //3.1如果文件不存在的话,那么就创建一个
        if (!jadFile.exists()) {
            jadFile.mkdir();
        }
        //4、将所有.Java的文件复制到Jad文件夹下面
        for (File file : javaFiles) {
            FileInputStream fis=new FileInputStream(file);
            String newJadName=file.getName().replaceAll("\\.java$", ".jad");
            FileOutputStream fos=new FileOutputStream(new File(jadFile,newJadName));
            copy(fis,fos);
            fis.close();
            fos.close();
        }
        
    }
/**
 * 将输入流中的内容输出
 * @param fis 文件输入流
 * @param fos 文件输出流
 */
    private static void copy(FileInputStream fis, FileOutputStream fos) {
        byte[] buff=new byte[1000];
        int lenth=0;
        try {
            while (-1!=(lenth=fis.read(buff))) {
                fos.write(buff,0,lenth);        
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    
}

 

2、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class MyReadFromFile {
    public void readFromFile() throws IOException {
        // 完成文件管理类的初始化

        FileManager f1 = new FileManager("data1.txt", new char[] { '\n' });

        FileManager f2 = new FileManager("data2.txt", new char[] { '\n', ' ' });
        // 将文件1和文件2循环写入
        String file1Str = f1.NextWord();
        String file2Str = f2.NextWord();
        FileWriter fw = new FileWriter("c.txt");
        while (file1Str != null) {
            fw.write(file1Str);
            if (!file2Str.isEmpty()) {
                fw.write(file2Str);
            }
            file2Str = f2.NextWord();
            file1Str = f1.NextWord();
        }

        while (!file2Str.isEmpty()) {
            fw.write(file2Str);
            file2Str = f2.NextWord();
        }
        // 可能遇到的情况,文件1写完了,但是文件2还没有写完
        fw.close();

    }

    public static void main(String[] args) {

    }

    class FileManager {

        private int position = 0;
        private String[] Words;

        public FileManager(String FileName, char[] Seperate)
                throws FileNotFoundException {
            File mFile = new File(FileName);
            FileReader fileReader = new FileReader(mFile);
            String regex = null;
            if (Seperate.length > 1) {
                regex = "" + Seperate[0] + "|" + Seperate[1];
            } else {
                regex = "" + Seperate[0];
            }
            char[] Data = new char[(int) mFile.length()];
            try {
                int Lenth = fileReader.read(Data);
                String longWords = new String(Data, 0, Lenth);
                Words = longWords.split(regex);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }

        public String NextWord() {
            if (position == Words.length) {
                return null;
            }
            return Words[position++];

        }
    }
}
posted @ 2013-09-18 14:55  陈哈哈  阅读(357)  评论(0编辑  收藏  举报