解决方案 »

  1.   

    先读到一个缓冲区里面,然后split("|")出两部分,用输出流分别写入不同文件。
      

  2.   

    刚才试了一下啊,split时入参数 要写成  splt ("\\|"),    | 符号需要转义
      

  3.   

    package net.csdn.question;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.BufferedReader;
    import java.io.Reader;
    import java.io.Writer;
    public class FileSpliter {
    public static void main(String[] args) throws IOException{
    InputStream is = new FileInputStream(new File("C:/123.txt"));
    Reader in = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(in);
    StringBuffer strBuffer = new StringBuffer();
    while(true){
    String temp = br.readLine();
    if(temp != null){
    strBuffer.append(temp);
    }else{
    br.close();
    break;
    }
    }
    String[] content = strBuffer.toString().split("\\|");
    for(int i = 0;i<content.length;i++){
    File subFile = new File("c:/sub123_"+i+".txt");
    if(!subFile.exists())
    subFile.createNewFile();
    Writer writer = new FileWriter(subFile);
    writer.write(content[i]);
    writer.flush();
    writer.close();
    }
    }
    }
    你自己在硬盘上建个测试文件,比如我代码里指定的是C:\123.txt   
      

  4.   


    inputstream 在 转为 stringBuffer的过程中指定编码UTF-8,还是乱码,如何解决呢?
      

  5.   

    上面代码使用的是字符流,你原始要拆分的文件里面是文本还是二进制,方便看一下不。或者你再试一下gb2312编码
    我之前在我本地试过的文本文件123.txt没有乱码呀  
      

  6.   


    String diskPath = "c:/";
      InputStream is = request.getInputStream();
      BufferedReader br = new BufferedReader(new InputStreamReader(is,
      "UTF-8"));
      StringBuffer strBuffer = new StringBuffer();
      while (true) {
      String temp = br.readLine();
      if (temp != null) {
      strBuffer.append(temp);
      } else {
      br.close();
      break;
      }
      }  String[] content = strBuffer.toString().split("\\|");
      for (int i = 0; i < content.length; i++) {  boolean b = content[i].endsWith(".txt");
      File subFile;
      if (b) {
      subFile = new File(diskPath + content[i]);
      if (!subFile.exists())
      subFile.createNewFile();
      } else {
      Writer writer = new FileWriter(new File(diskPath
      + content[i - 1]));
      writer.write(content[i]);
      writer.flush();
      writer.close();
      }
      }