A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 残月 初级黑马   /  2015-10-21 22:25  /  1863 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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…………..”这样的顺序。

21 个回复

倒序浏览
第一题:
/**
* 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();
        }
}
回复 使用道具 举报
第二题:
先在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());
        }
}
回复 使用道具 举报
有用啊,O(∩_∩)O谢谢
回复 使用道具 举报
第三题:
/**
* 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();
        }
}
回复 使用道具 举报
感谢分享!
回复 使用道具 举报
还好,谢谢
回复 使用道具 举报
感谢分享,看起来面试不简单啊,有难度啊
回复 使用道具 举报
meihua 中级黑马 2015-10-22 16:42:47
9#
留一个,说不定有用
回复 使用道具 举报
看下,说不定以后有用
回复 使用道具 举报
面试老师问的吗
回复 使用道具 举报
都是干货啊,收藏了,
回复 使用道具 举报
感谢分享~~~~~
回复 使用道具 举报
谢谢分享,很有用啊
回复 使用道具 举报
范宗斌 来自手机 中级黑马 2015-10-23 08:44:18
15#
顶顶顶!
回复 使用道具 举报
逝风 中级黑马 2015-10-23 10:21:31
16#
感觉很厉害的样子
回复 使用道具 举报
收藏了!
回复 使用道具 举报
先收藏了
回复 使用道具 举报
感觉很厉害的样子啊呵呵
回复 使用道具 举报
雨来 高级黑马 2015-10-24 14:18:09
20#
这些都是面试题吗?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马