用Java实现对文件的操作,把文件里边的职工工资加0.1倍之后再存进文件里边

     题目描述:假设已经有一个文本文件中存放着职工的工资记录。每个职工的记录包含姓名、工资、津贴三项。 每条记录可以存放于一行(三项之间的间隔符可以自己决定),也可以将每条记录的三项依次分别存放在 文本文件中的每一行。请设计一个程序,可以让用户选择打开这个文件查看其内容,并可以让用户选择 把每个职工的工资增加 10%之后又存回原来的文件。注意,职工工资记录的条数可能成百上千条甚至更多, 要能通过你所设计的程序,批量地一次性修改所有职工工资记录。 

 

 


      对于我这菜鸡来说只能实现简简单单的了,如果有大神有啥改进的意见也可以滴滴我;文件的创建是这样的:第一列是名字,第二列是工资,第三是津贴

这是内容:

 

结果为:(第三个居然来了个这么多个小数点)

 

代码:

package 加工资后的文件;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile; 
public class AfterEditeFile {
	public static void main(String args[]) {
		try {
			File f = new File("D:\\began.txt");//原始的工资放在这
			RandomAccessFile in = new RandomAccessFile(f,"rw");//处理后的工资放在这
			FileOutputStream out =new FileOutputStream("D:\\result.txt");
			float chenglezhihou;//用于存储加倍了之后的工资
			
			int i;
			 byte b[] = new byte[100];  
			 String read = in.readLine();
			 while(read != null)
			 {
				 //将汉字国际化
				  b = read.getBytes("iso-8859-1");
				  String a= new String(b);
				  String kongge = "  ";//用于输出到文件后每一个数据后边都加个空格
				
				  
				  
				  
				   
				  //正则表达式
				  String s[]; 
				  s=a.split(" "); //以空格来作为分割
				  for( i=0;i<s.length;i++) 
				  {
						  if(i == 0)//第一列为名字
						  {
							  out.write(s[i].getBytes());
							  out.write(kongge.getBytes());//写入之后再写入几个空格隔开(下同)
							 
						  }
						  else if(i == 1) //第二列为工资
						  {
							   chenglezhihou =  Float.parseFloat((String) s[i]) *1.1f;//工资加倍
							   out.write((chenglezhihou+"").getBytes());
							   out.write(kongge.getBytes());
						  }
						  else
						  {
							  out.write(s[i].getBytes());
							  out.write(kongge.getBytes());
							 
						  }
				  }
				 out.write('\r');//在每行的结尾来个换行符号
				 out.write('\n');
				 read = in.readLine();
			 }
			out.close();
			in.close();
		}
		catch(IOException e){
			System.out.println("ERROE"+e);
		}
	}

}

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值