读书人

帮小弟我看看这个有关问题啊

发布时间: 2012-02-10 21:27:41 作者: rapoo

帮我看看这个问题啊....
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

// 注意类名要大写
public class Temp
{
public static void main(String [] args)
{
try
{
String head = "Name,ID,DS,DB ";
byte[] c = new byte[40];
c = head.getBytes();
System.out.println(new String(c));
String record = " ";

// 判断文件是否存在
File dir = new File( "c:\\student.txt ");
if(dir.exists())
{
// 是否有内容
FileInputStream infile = new FileInputStream(dir);
if(infile.read() < 0)
{
record = "Name ID DS DB " + "\r\n ";
}
infile.close();
}

BufferedWriter fo = new BufferedWriter(new FileWriter( "c:\\student.txt ",true));
String[] info = new String[4];
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));


for (int i = 0; i < info.length; i++)
{
info[i] = reader.readLine();
record += info[i] + "\t\n ";
}
System.out.println(record);

fo.write(record);

// 换行
fo.write( "\r\n ");
fo.close();
}
catch (FileNotFoundException fe)
{
System.out.println( "File Not Found ");
}
catch (IOException ie)
{
System.out.println( "IO Exception ");
}
}
}

如果执行两次程序,你们想想会有什么结果呢,!就会出现两个HEAD变量的信息,应该怎么避免,还有我应该怎么解决空值问题



[解决办法]
我把你的代码,稍微改了一下,你看看行吗?

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

public class Temp {  
  
  public static void main(String[] args) {
    
    // 每次需要输入的数量
    final int COUNT = 2;
    // 标题
    final String HEAD = "Name,ID,DS,DB ";
    // 文件名
    final String FILENAME = "f:/student.txt ";
    
    String record = " ";
    File dir = new File(FILENAME);
    if (!dir.exists()) {
      record = HEAD + "\r\n ";
    }
    try {
      BufferedWriter fo = new BufferedWriter(new FileWriter(FILENAME, true));      
      BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
      
      System.out.println(HEAD);
      for (int i = 0; i < COUNT; i++) {
        System.out.printf( "请输入第[%d]个数据: ", i+1);
        String info = reader.readLine();        
        
        // 对输入的数据进行检验
        if(!info.matches( ".+,\\d+,\\d+,\\d+ ")){
          System.out.println( " ** 不符合规范,请重新输入** ");
          i--;
        }else{
          record += info + "\r\n ";


        }
      }
      System.out.println(record);
      fo.write(record);
      fo.close();
    } catch (FileNotFoundException fe) {
      System.out.println( "File Not Found ");
    } catch (IOException ie) {
      System.out.println( "IO Exception ");
    }
  }
}

读书人网 >J2SE开发

热点推荐