日期:2014-05-20  浏览次数:20946 次

读txt文件的问题
我读一个txt文件 代码如下:
[code=Java][/code]import java.io.*;
public class dataio{

 public static void main(String []args)
{
  FileInputStream fis=null;
  FileOutputStream fos=null;
  int c;
  try
  {
  fis=new FileInputStream("c:\\t1.txt");
  fos=new FileOutputStream("c:\\t2.txt");
  while((c=fis.read())!=-1)
  {
  fos.write(c);
  //if(c ="/n")///weiti
  //{DataOut.writeBytes("\r\n");continue;
  //}
  }
  }catch(FileNotFoundException e1)
  {
  System.out.println(e1);


  }catch(IOException e2)
  {
  System.out.println(e2);
  }
  finally
  {try{
  if(fis!=null)
  fis.close();

  if(fos!=null)
  fos.close();
  }catch(IOException e3)
  {
  System.out.println(e3);



  }

  }
 //int ch = InputStream.read();

  //if(ch == '\n')
}
}
问题1:我想遇到空格就换行怎么办
问题2:我想遇到其他的特殊字符就换行怎么办

------解决方案--------------------
我刚来 这个网站 所以回答的不好请原谅
问题 1
答:你这个读取操作是按字符 读取的吧,你可以用读到字符的转换成字符串,然后用 字符串的equals()方法,比较是不是空格
如过是按行读取的话,就把整行的内容提取出来赋给一个字符串变量,再用equals()方法比较啊

不知道这个方法行不行 你可以试 一试
问题2 应该和问题1差不多,你自己思考一下吧
------解决方案--------------------
问题1:我想遇到空格就换行怎么办 
问题2:我想遇到其他的特殊字符就换行怎么办
这2个问题可以一起解决,用正则表达式,简单一点就是用String 的split方法。
首先用readline()读取一行,用split方法分解成字符串数组,每个数组单元看成一行就行了。
具体方法就是 String[] arrays = s.split("[\\s]+");//遇到空格就换行
如果加上其它特殊字符(如*)就是String[] arrays = s.split("[\\s\\*]+");//遇到空格或者*号就换行