文档章节

Java实现文本文件动态存储和读写

娘炮中的女汉子
 娘炮中的女汉子
发布于 2017/05/15 21:16
字数 498
阅读 18
收藏 0
点赞 1
评论 0

package text;

 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

 

public class text {

 

 public static void main(String[] args) {
  int n = -1;
  File file = new File("text.txt");
  byte[] a = new byte[(int) file.length()];
  int as = 0;
  int ex = 0;
  try {
   FileInputStream in1 = new FileInputStream(file);
   while ((n = in1.read(a, 0, (int) file.length())) != -1) {
    String s = new String(a, 0, n);
    for (int shu2 = 0; shu2 < s.length(); shu2++) {
     if (s.charAt(shu2) == '\n')
      as++;
    }
   }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  String[][] stu = new String[4][as];
  String[] con = { "姓名", "性别", "年龄", "专业" };
  Scanner read = new Scanner(System.in);
  String[] k = new String[as];
  int shu = 0, d = 0;
  int a1 = 1;
  try {
   FileInputStream in = new FileInputStream(file);
   while ((n = in.read(a, 0, (int) file.length())) != -1) {
    String s = new String(a, 0, n);
    char[] aa = s.toCharArray();
    System.out.println(aa);
    for (int j = 0; j < as; j++) {
     for (int i = 0; i < stu.length; i++) {
      for (shu = d; shu < s.length(); shu++) {
       if ((s.charAt(shu) == ' ' || s.charAt(shu) == '\n') && a1 == 0) {
        d = shu;
        a1 = 1;
        break;
       }
       if (s.charAt(shu) != ' ' && s.charAt(shu) != '\n') {
        if (stu[i][j] == null) {
         stu[i][j] = s.charAt(shu) + "";
         a1 = 0;
        } else {
         stu[i][j] = stu[i][j] + s.charAt(shu) + "";
         a1 = 0;
        }
       }
       if ((s.charAt(shu) == ' ' || s.charAt(shu) == '\n') && a1 == 0) {
        d = shu;
        break;
       }
      }
     }
    }
   }
   System.out.println("该数据是否需要更改?");
   Scanner chan = new Scanner(System.in);
   String cha = chan.next();
   if (cha.equals("是")) {
    while (ex == 0) {
     System.out.println("请更改:");
     Scanner gai = new Scanner(System.in);
     String sh = gai.next();
     for (int j = 0; j < as; j++) {
      if (sh.equals(stu[0][j])) {
       for (int ss = 0; ss < k.length; ss++) {
        if (j == ss) {
         Scanner set = new Scanner(System.in);
         for (int shu2 = 0; shu2 < con.length; shu2++)
          System.out.println("你想更改" + stu[0][j] + "的" + con[shu2] + "请输入" + (shu2 + 1));
         int and = set.nextInt();
         for (int s = 0; s < stu.length; s++) {
          if (and == s + 1) {
           System.out.println("请更改" + stu[0][j] + "的" + con[s] + ":");
           String t=stu[s][j];
           stu[s][j] = read.next();
           if(t.equals(stu[s][j]))
            System.out.println("你根本没有更改");
           else
            System.out.println("更改成功");
          }
         }
         break;
        }
       }
       break;
      }else if(j==as-1){
       System.out.println("不存在"+sh+"的信息");
       break;
      }
     }
     System.out.println("你是否想继续更改?");
     Scanner ex1 = new Scanner(System.in);
     String ga = ex1.next();
     if (ga.equals("是"))
      ex = 0;
     if (ga.equals("否"))
      ex = 1;
    }
   }
   in.close();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  byte[] num[] = new byte[as][];
  for (int kk = 0; kk < num.length; kk++) {
   num[kk] = (stu[0][kk] + " " + stu[1][kk] + " " + stu[2][kk] + " " + stu[3][kk] + "\n").getBytes();
   try {
    FileOutputStream out = new FileOutputStream(file);
    for (int jj = 0; jj < num.length; jj++) {
     if (num[jj] != null)
      out.write(num[jj]);
    }
    out.close();
   } catch (FileNotFoundException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 }

 

}

我想实现动态存储事件

大雄 男 8 下町小学

© 著作权归作者所有

共有 人打赏支持
娘炮中的女汉子
粉丝 1
博文 1
码字总数 498
作品 0
Android Serializable与Parcelable原理与区别

一、序列化、反序列化是什么? (1) 名词解释 对象的序列化 : 把Java对象转换为字节序列并存储至一个储存媒介的过程。 对象的反序列化:把字节序列恢复为Java对象的过程。 (2) 序列化详细解释 ...

KingMing
2015/04/16
0
0
wenweihu86/raft-java

raft-java Raft implementation library for Java. 参考自Raft论文和Raft作者的开源实现LogCabin。 支持的功能 leader选举 日志复制 snapshot 集群成员动态更变 Quick Start 在本地单机上部署...

wenweihu86
07/01
0
0
分布式一致性算法raft的java实现 - raft-java

raft-java Raft implementation library for Java. 参考自Raft论文和Raft作者的开源实现LogCabin。 支持的功能 leader选举 日志复制 snapshot 集群成员动态更变 Quick Start 在本地单机上部署...

wenweihu86
07/01
0
0
三分钟读懂Java与JavaScript的区别,让小白摘帽

Java跟JavaScript虽然在名称上有些许相似,但其实是两种完全不同的语言。Java是一种程序设计语言,JavaScript是客户端的脚本语言,把这两样东西放在一起比较在科学上其实并不严谨。但它们唯一...

小欣妹妹
2017/10/21
0
0
Java常见问题集锦(来自Sun中国官方站)

发表日期:2003年11月28日 已经有91位读者读过此文 原文链接:http://blog.csdn.net/jaminwm/article/details/90376

晨曦之光
2012/03/09
0
0
9个基于Java的搜索引擎框架

9个基于Java的搜索引擎框架 [导读] Lucene是目前最受欢迎的Java全文搜索框架,准确地说,它是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene为开发人员...

引鸩怼孑
2015/07/30
0
0
使用 javax.tools 创建动态应用程序

转自:https://www.ibm.com/developerworks/cn/java/j-jcomp/?STACT=105AGX52&SCMP=tut-cto 本文永久地址:https://my.oschina.net/bysu/blog/1552935 简介 包是一种添加到 Java SE 6 的标准......

不最醉不龟归
2017/10/18
0
0
HDFS之SequenceFile和MapFile

Hadoop的HDFS和MapReduce子框架主要是针对大数据文件来设计的,在小文件的处理上不但效率低下,而且十分消耗磁盘空间(每一个小文件占用一个Block,HDFS默认block大小为64M)。解决办法通常是选...

mahout
2012/09/02
0
0
Sharding-JDBC 3.0 即将发布,更名 Sharding-Sphere !

8日下午,知名开源数据库中间件 Sharding-JDBC 创始人张亮在朋友圈中发布了一个动态,表示 Sharding-JDBC 3.0 将于近期发布。 从该动态我们可以知道,从 3.0 开始,Sharding-JDBC 将更名为 ...

雨田桑
05/08
0
16
Hotpot Java虚拟机Class对象是在方法区还是堆中

Class对象是存放在堆区的,不是方法区,这点很多人容易犯错。类的元数据(元数据并不是类的Class对象。Class对象是加载的最终产品,类的方法代码,变量名,方法名,访问权限,返回值等等都是...

小欣妹妹
2017/10/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JAVA 三种WebService 规范

JAVA 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。 1. Jaxws(掌握) JAX-WS 的全称为 Java API for XML-Based Webservices ,早期的基于SOAP 的JAVA 的Web 服务...

onedotdot
18分钟前
0
0
将博客搬至CSDN

将博客搬至CSDN

xpbob
19分钟前
0
0
TensorFlow 拟合异或 one-hot方式

增加隐含层数目 之前是按照计算出的数值按照0.5分为0和1,现在是算出向量,用维度较大的作为结果 import tensorflow as tfimport numpy as np# 网络结构:2维输入 --> 2维隐藏层 --> ...

阿豪boy
21分钟前
0
0
Aidl进程间通信详细介绍

目录介绍 1.问题答疑 2.Aidl相关属性介绍 2.1 AIDL所支持的数据类型 2.2 服务端和客户端 2.3 AIDL的基本概念 3.实际开发中案例操作 3.1 aidl通信业务需求 3.2 操作步骤伪代码 3.3 服务端操作...

潇湘剑雨
37分钟前
0
0
python爬虫日志(3)下载图片

import urlliburl='https://xxx.jpg'#图片地址res=urllib.request.urlopen(url)#此函数用于对url的访问data=res.read() #字节流with open(r'D:\1.jpg',"wb") as code: c...

茫羽行
54分钟前
0
0
vue中$emit的用法

1、父组件可以使用 props 把数据传给子组件。 2、子组件可以使用 $emit 触发父组件的自定义事件。 vm.$emit( event, arg ) //触发当前实例上的事件 vm.$on( event, fn );//监听event事件后运...

JamesView
今天
0
0
bash审计系统搭建

step1:使用saltstack工具bash部署>>>>>> # salt -N clienta state.sls audit step2:安装elasticsearch>>>>>> 注意: 1.不能以root用户进行启动,需要创建用户,并对解压的elasticsearch目录赋......

硅谷课堂
今天
0
0
Linux sar性能分析

Linux使用sar进行性能分析 sar简介 sar命令常用格式 sar常用性能数据分析 整体CPU使用统计-u 各个CPU使用统计-P 内存使用情况统计-r 整体IO情况-b 各个IO设备情况-d 网络统计-n sar日志保存-...

易野
今天
0
0
用 Python 实现打飞机,让子弹飞吧!

所用技术和软件 python 2.7 pygame 1.9.3 pyCharm 准备工作 安装好 pygame 在第一次使用 pygame 的时候,pyCharm 会自动 install pygame。 下载好使用的素材。 技术实现 初始化 pygame 首先要...

猫咪编程
今天
0
0
MySQL的行锁和表锁

简单总结一下行锁和表锁。 行锁 每次操作锁住一行数据。开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 表锁 每次操作锁住整张表。开销小,加锁快;不会出...

to_ln
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部