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++]; } } }
作者:kissazi2
出处:http://www.cnblogs.com/kissazi2/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。