黑马程序员技术交流社区
标题:
面试难点解析3
[打印本页]
作者:
残月
时间:
2015-10-21 22:25
标题:
面试难点解析3
1.自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。
2.已知一个类,定义如下:
package cn.itcast.heima;
public class DemoClass {
public void run()
{
System.out.println("welcome to heima!");
}
}
(1) 写一个Properties格式的配置文件,配置类的完整名称。
(2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。
3.已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,并按照自然顺序排序后输出到b.txt文件中。即b.txt中的文件内容应为“abcd…………..”这样的顺序。
作者:
残月
时间:
2015-10-21 22:27
第一题:
/**
* 7、 自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,
* 让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。
*
* @author Administrator
*/
public class Test7 {
public static void main(String[] args) throws Exception {
MyLineNumberReader mlnr = new MyLineNumberReader(new FileReader(
"my.java"));
String line = null;
while ((line = mlnr.readLine()) != null) {
System.out.println(mlnr.getLineNumber() + ":" + line);
}
mlnr.close();
}
}
//下面是自定义的字符输入流的包装类
public class MyLineNumberReader {
private Reader r;
private int lineNumber = 0;
public MyLineNumberReader(Reader r) {
this.r = r;
}
public int getLineNumber() {
// lineNumber++;
return lineNumber;
}
public void setLineNumber(int lineNumber) {
this.lineNumber = lineNumber;
}
public String readLine() throws IOException {
lineNumber++;
StringBuilder sb = new StringBuilder();
int ch = 0;
while ((ch = r.read()) != -1) {
if (ch == '\r') {
continue;
}
if (ch == '\n') {
return sb.toString();
} else {
sb.append((char) ch);
}
}
if (sb.length() > 0) {
return sb.toString();
}
return null;
}
public void close() throws IOException {
this.r.close();
}
}
作者:
残月
时间:
2015-10-21 22:32
第二题:
先在package cn.itcast.heima包中定义一个类把代码复制进去:
package cn.itcast.heima;
public class DemoClass {
public void run() {
System.out.println("welcome to heima!");
}
}
然后在项目里创建一个文件名为class.properties的文件,内容如下:
key=cn.itcast.heima.DemoClass
然后第二小题:
public class Test6 {
public static void main(String[] args) throws Exception {
//创建一个Properties对象
Properties prop = new Properties();
prop.load(new FileReader("class.properties"));
//通过key获取值(类的完整名称)
String className = prop.getProperty("key");
// 获取字节码文件对象
Class c = Class.forName(className);
//获取run方法并运行
Method m = c.getMethod("run");
m.invoke(c.newInstance());
}
}
作者:
heima117
时间:
2015-10-21 22:35
有用啊,O(∩_∩)O谢谢
作者:
残月
时间:
2015-10-21 22:35
第三题:
/**
* 5、 已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,
* 并按照自然顺序排序后输出到b.txt文件中。即b.txt中的文件内容应为“abcd…………..”这样的顺序。
*
* @author Administrator
*
*/
public class Test5 {
public static void main(String[] args) throws IOException {
// 通过高效字符流读取a.txt里面的内容
BufferedReader reader = new BufferedReader(new FileReader("a.txt"));
String line = reader.readLine();
reader.close();
// 把a.txt文件中的字符串转换成字符数组,然后进行排序
char[] chs = line.toCharArray();
Arrays.sort(chs);
// 把排序过的字符数组转换成字符串,写入b.txt
PrintWriter writer = new PrintWriter(new FileWriter("b.txt"));
writer.println(new String(chs));
writer.close();
}
}
作者:
小胖
时间:
2015-10-22 14:26
感谢分享!
作者:
三川草民
时间:
2015-10-22 14:54
还好,谢谢
作者:
xiexie758
时间:
2015-10-22 14:59
感谢分享,看起来面试不简单啊,有难度啊
作者:
meihua
时间:
2015-10-22 16:42
留一个,说不定有用
作者:
我若为神
时间:
2015-10-22 21:26
看下,说不定以后有用
作者:
爨oooo
时间:
2015-10-22 21:38
面试老师问的吗
作者:
大地z灵
时间:
2015-10-22 23:09
都是干货啊,收藏了,
作者:
如梦丶似幻
时间:
2015-10-23 00:07
感谢分享~~~~~
作者:
迷途老马
时间:
2015-10-23 01:24
谢谢分享,很有用啊
作者:
范宗斌
时间:
2015-10-23 08:44
顶顶顶!
作者:
逝风
时间:
2015-10-23 10:21
感觉很厉害的样子
作者:
孤叶飘城
时间:
2015-10-23 10:46
收藏了!
作者:
达达达
时间:
2015-10-23 23:48
先收藏了
作者:
heimacxy2015
时间:
2015-10-24 01:04
感觉很厉害的样子啊呵呵
作者:
雨来
时间:
2015-10-24 14:18
这些都是面试题吗?
作者:
xiao_D
时间:
2015-10-24 17:13
谢谢谢谢谢
作者:
yangshaoqiang
时间:
2015-10-24 19:01
怎么面试啊?网上面试的话,还有题的吗?不懂不懂,说说网上面试流程好吗
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2