面试题目两题写法
发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,第一题:题目打印:java写法: public static void showTree(int level, File parentFolderPath) { if (parentF
第一题:
题目打印:
java写法:
public static void showTree(int level, File parentFolderPath) { if (parentFolderPath.isDirectory()) { File[] childFiles = parentFolderPath.listFiles(); for (File file : childFiles) { showNameByLevel(level); System.out.println(file.getName()); if (file.isDirectory()) { showTree(level + 1, file); } } } } public static void showNameByLevel(int level) { StringBuffer stringBuffer = new StringBuffer(); if (level > 0) { for (int i = 0; i < level; i++) { stringBuffer.append("\t"); } } if(stringBuffer.length() >0) System.out.print("|" + stringBuffer); System.out.println("|"); if (stringBuffer.length()>0) System.out.print("|" + stringBuffer); System.out.print("----"); } @Test public void c23() { File file = new File("D:\\TOOL\\IDEASpace\\mavedome\\src\\test\\java");// printlen(file, 0); showTree(0, file); }
python写法:
def fileCntIn(currPath): '''''汇总当前目录下文件数''' sum = 0 for root, dirs, files in os.walk(currPath, topdown=False): for flie in files: sum += len(flie) return sum # return sum([len(files) for root, dirs, files in os.walk(currPath,topdown=False)])def dirsTree(startPath): '''''树形打印出目录结构''' for root, dirs, files in os.walk(startPath): # 获取当前目录下文件数 fileCount = fileCntIn(root) # 获取当前目录相对输入目录的层级关系,整数类型 level = root.replace(startPath, '').count(os.sep) # 树形结构显示关键语句 # 根据目录的层级关系,重复显示'| '间隔符, # 第一层 '| ' # 第二层 '| | ' # 第三层 '| | | ' # 依此类推... # 在每一层结束时,合并输出 '|____' indent = '| ' * 1 * level + '|____' print('%s%s -r:%s' % (indent, os.path.split(root)[1], fileCount)) for file in files: indent = '| ' * 1 * (level + 1) + '|____' print('%s%s' % (indent, file))if __name__ == '__main__': dirsTree(os.getcwd())
第二题:
判断一些哪里有问题,如果有问题,怎么修改。
FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; try { fileInputStream = new FileInputStream("ttt"); fileOutputStream = new FileOutputStream("bbb"); }
修改为:
FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; try { fileInputStream = new FileInputStream("ttt"); fileOutputStream = new FileOutputStream("bbb"); int len = 0; while ((len = fileInputStream.read()) != 0) { fileOutputStream.write(len); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if (fileInputStream != null) { try { fileInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (fileOutputStream != null) { try { fileOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } }
写法:
public static void main(String[] args) { FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream("aaa.txt"); fos = new FileOutputStream("bbb.txt"); int b; while ((b = fis.read()) != -1) { fos.write(b); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } }}