注册 登录
编程论坛 JAVA论坛

求改一下 看哪里出错了

任凯12 发布于 2016-05-28 17:11, 1523 次点击
要求是读取d盘中h.txt文件中的数,然后按照10个数一行输出到hh.txt
看看这个那里不行   或者帮忙重编一个
package com.szf;

import
import
import
import
import
import
import
import

public class CopyOftest2 {

    public static void main(String[] args) {
        readTxtFile();
        // writeFile("");
        // writeFile2();
    }

    /**
     * 功能:Java读取txt文件的内容 步骤:1:先获得文件句柄 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取
     * 3:读取到输入流后,需要读取生成字节流 4:一行一行的输出。readline()。 备注:需要考虑的是异常情况
     * 4: 将数字格式化排列为10个一行  写入另一个文本中
     * @param filePath
     */
    public static void readTxtFile() {
        try {
            String encoding = "gbk";
            File file = new File("d:/h.txt");
            if (file.isFile() && file.exists()) { // 判断文件是否存在
                InputStreamReader read = new InputStreamReader(
                        new FileInputStream(file), encoding);// 考虑到编码格式
                BufferedReader bufferedReader = new BufferedReader(read);
                String line = null;
                StringBuffer ss = new StringBuffer();
                StringBuffer ss2 = new StringBuffer();
                String line2 = "";
                int flag = 0;// 标记位 记录当前读到第几行
                while ((line = bufferedReader.readLine()) != null) {// 每次读取一行
                    flag++;
                    line2 = line2 + line.toString();// 将两行连成一行

                    if (flag == 2) {
                        System.out.println("======" + line2);
                        String[] x = line2.split("#");
                        for (int j = 0; j < x.length; j++) {
                            ss2.append(x[j]).append("#");
                        }
                        writeFilexx(ss2.toString());
                        
                        line2 = "";
                        flag = 0;
                    }

                }

                read.close();

            } else {
                System.out.println("找不到指定的文件");
            }
        } catch (Exception e) {
            System.out.println("读取文件内容出错");
            e.printStackTrace();
        }

    }

    public static void writeFilexx(String data) {
        try {
            FileWriter out = new FileWriter("d:/hh.txt", true);

            PrintWriter pw = new PrintWriter(out);
            pw.println(data);

            pw.close();
            out.close();
        
        } catch (IOException e) {

            e.printStackTrace();
        }

    }

   

}
6 回复
#2
任凯122016-05-28 17:12
#3
任凯122016-05-28 20:30
#4
任凯122016-05-28 22:57
#5
任凯122016-05-29 10:32
#6
dkplus2016-05-29 16:00
帮顶
#7
grmmylbs2016-05-30 09:24
是这个意思不?

程序代码:



 import import import import import import import public class CopyOftest2 {

     public static void main(String[] args) {
         readTxtFile();
         // writeFile("");
         
// writeFile2();
     }

     /**
      * 功能:Java读取txt文件的内容 步骤:1:先获得文件句柄 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取
     * 3:读取到输入流后,需要读取生成字节流 4:一行一行的输出。readline()。 备注:需要考虑的是异常情况
     * 4: 将数字格式化排列为10个一行  写入另一个文本中
     *
@param filePath
      
*/
     public static void readTxtFile() {
         try {
             String encoding = "gbk";
             File file = new File("d:/h.txt");
             if (file.isFile() && file.exists()) { // 判断文件是否存在
                InputStreamReader read = new InputStreamReader(
                         new FileInputStream(file), encoding);// 考虑到编码格式
                BufferedReader bufferedReader = new BufferedReader(read);
                 String line = null;
                 StringBuffer ss2 = new StringBuffer();
                 String line2 = "";
                 int flag = 0;// 标记位 记录当前读到第几行
                while ((line = bufferedReader.readLine()) != null) {// 每次读取一行
                    flag++;
                     line2 = line2 + line.toString();// 将两行连成一行

                    if (flag == 10) {
                         System.out.println("======" + line2);
                         String[] x = line2.split("#");
                         for (int j = 0; j < x.length; j++) {
                             ss2.append(x[j]).append("#");
                         }
                         writeFilexx(ss2.toString());
                         ss2.delete(0,ss2.length());
                         line2 = "";
                         flag = 0;
                     }

                 }

                 read.close();

             } else {
                 System.out.println("找不到指定的文件");
             }
         } catch (Exception e) {
             System.out.println("读取文件内容出错");
             e.printStackTrace();
         }

     }

     public static void writeFilexx(String data) {
         try {
             FileWriter out = new FileWriter("d:/hh.txt", true);

             PrintWriter pw = new PrintWriter(out);
             pw.println(data);

             pw.close();
             out.close();
         
         } catch (IOException e) {

             e.printStackTrace();
         }

     }

     


 }
1