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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

转换流复制TXT文件,代码如下,但是一运行就报
java.lang.NullPointerException
不知道为什么,求解答
import java.io.*;
class FileCopyDemo1
{
        public static void main(String[] args) throws IOException
        {
                //System.out.println("Hello World!");

                FileInputStream fis = new FileInputStream("D:/abc.txt");//创建字节输入流
                InputStreamReader isr = new InputStreamReader(fis);//将字节输入流转化为字符输入流
                BufferedReader br = new BufferedReader(isr);//对字符输出流进行包装

                FileOutputStream fos = new FileOutputStream("D:/123.txt");//创建字节输出流
                OutputStreamWriter osw = new OutputStreamWriter(fos);//将字节输出流转化为字符输出流
                BufferedWriter bw = new BufferedWriter(osw);//将字符输出流进行包装

                String line;
                while ((line=br.readLine())!=null);
                {
                        bw.write(line);
                        bw.newLine();
                }

                br.close();
                bw.close();

        }
}

6 个回复

倒序浏览
没有人可以解答吗?
回复 使用道具 举报
拷贝一个文本文件的话其实狠简单,你可能刚学到 还要用到字节转字符的转换流,这会很麻烦,而且不易观看 你看到流的话 慢慢接着看后一点 做多点练习会 发现前面的 其实很简单易懂。上诉这个情况的话 我给你简化下


BufferedReader bfr = new BufferedReader(new FileReader("abc.txt"));//读取流对象关联文件
BufferedWriter bfw = new BufferedWriter(new FileWriter("abc_copy.txt"));//写入流,将写入至新的文本中         
                         String line = null;
                         while ((line=bfr.readLine())!=null) //循环读取关联的文件数据
                         {
                                 bfw.write(line);//写入数据
                                 bfw.newLine();//换行
                                 bfw.flush();//刷新
                         }

                         bfw.close();//关流
                         bfr.close();
回复 使用道具 举报
仔细一看问题 是出在循环的里的,仔细不难发现 你的while循环多了个 ;分号   一定要注意这些 我在学习中也碰到过类似错误,因为分号代表结束,读不到循环体的内容  所以才报空指针异常
回复 使用道具 举报
你的While()后面多了一个分号
回复 使用道具 举报
注意一下细节就好了
回复 使用道具 举报
细节决定成败啊, 有一次我没写main 很久才发现呢。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马