精华内容
下载资源
问答
  • 我们一般用properties或者XML文件作为资源存储的...在config下新建一个file,把它命名demo.properties3. 把下面的几段文字复制到demo.properties中#commentsusername=oseye4.新建一个叫RunMain.java的class ,在...

    我们一般用properties或者XML文件作为资源存储的文件,现在主要介绍一下对properties的操作

    1.我们在src文件下新建一个名称为config的包

    2.在config下新建一个file,把它命名为demo.properties

    3. 把下面的几段文字复制到demo.properties中

    #comments

    username=oseye

    4.新建一个叫RunMain.java的class ,在里面添加textProperties方法如下:

    public  static void textProperties(){

    Properties prop=new Properties();

    try {

    prop.load(RunMain.class.getResourceAsStream("/config/demo.properties"));

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    String username = prop.getProperty("username");//此方法实现了在demo.properties读出属性为username的值

    System.out.println("username的值:"+username);

    }5.新建一个自己的类,这个类名就随便取了,我建了一个叫People的类,另外需要至少两个类实现通过更改demo.propertie来创建不同的对象,所以我写了People1和People2来继承People:

    People

    package config;

    public abstract class People {

    private String sname;

    private String sex;

    public People() {

    super();

    // TODO Auto-generated constructor stub

    }

    public People(String sname, String sex) {

    super();

    this.sname = sname;

    this.sex = sex;

    }

    //get&set方法

    @Override

    public String toString() {

    return "People [sname=" + sname + ", sex=" + sex + "]";

    }

    public abstract void setAge(String age);

    public abstract void setHigh(String high);

    }People1:

    package config;

    public class People1 extends People {

    private String age ;

    public People1() {

    super();

    // TODO Auto-generated constructor stub

    }

    public People1(String sname, String sex,String age) {

    super(sname, sex);

    this.age = age;

    // TODO Auto-generated constructor stub

    }

    //getset方法

    @Override

    public String toString() {

    return "People1 [name=" + super.getSname()+ ",sex="+super.getSex()+",age=" + age + "]";

    }

    }People2:

    package config;

    public class People2 extends People {

    private String high ;

    public People2() {

    super();

    // TODO Auto-generated constructor stub

    }

    public People2(String sname, String sex,String high) {

    super(sname, sex);

    this.high = high;

    // TODO Auto-generated constructor stub

    }

    @Override

    public String toString() {

    return "People2 [name=" + super.getSname()+ ",sex="+super.getSex()+",high=" + high + "]";

    }

    @Override

    public void setAge(String age) {

    // TODO Auto-generated method stub

    }

    @Override

    public void setHigh(String high) {

    // TODO Auto-generated method stub

    this.high=high;

    }

    }

    6.在RunMain中创建一个名称为textAll的方法:

    public static void textAll(){

    Properties prop=new Properties();

    People p = null;

    try {

    prop.load(RunMain.class.getResourceAsStream("/config/demo.properties"));

    Class people = Class.forName("config."+prop.getProperty("People"));

    p = (People)people.newInstance();

    } catch (ClassNotFoundException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    } catch (InstantiationException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    } catch (IllegalAccessException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    p.setSex("nv");

    p.setSname("xww");

    if(p instanceof People1){

    p.setAge("20");

    }else if(p instanceof People2){

    p.setHigh("180");

    }

    System.out.println(p);

    }

    7.修改demo.properties的值,添加上我们要创建的类

    People=People2  8.在主方法中运行一下textAll()这个方法,再改成People1再运行一下,两者分别输出各自类的信息

    9.至此我们就实现了在文件中读取一个字符串并创建以这个字符为名字的类的对象

    展开全文
  • 我们一般用properties或者XML文件作为资源存储的文件,现在...2.在config下新建一个file,把它命名demo.properties 3. 把下面的几段文字复制到demo.properties中 #comments username=oseye 4.新建一个叫RunMai

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">我们一般用properties或者XML文件作为资源存储的文件,现在主要介绍一下对properties的操作</span>

    1.我们在src文件下新建一个名称为config的包

    2.在config下新建一个file,把它命名为demo.properties

    3. 把下面的几段文字复制到demo.properties中

    #comments
    username=oseye

    4.新建一个叫RunMain.java的class ,在里面添加textProperties方法如下:

    public  static void textProperties(){
    		Properties prop=new Properties();
    		try {
    			prop.load(RunMain.class.getResourceAsStream("/config/demo.properties"));
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		String username = prop.getProperty("username");//此方法实现了在demo.properties读出属性为username的值
    		System.out.println("username的值:"+username);
    	}
    5.新建一个自己的类,这个类名就随便取了,我建了一个叫People的类,另外需要至少两个类实现通过更改demo.propertie来创建不同的对象,所以我写了People1和People2来继承People:

    People

    package config;
    
    public abstract class People {
    	private String sname;
    	private String sex;
    	public People() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    	public People(String sname, String sex) {
    		super();
    		this.sname = sname;
    		this.sex = sex;
    	}
    	//get&set方法
    	@Override
    	public String toString() {
    		return "People [sname=" + sname + ", sex=" + sex + "]";
    	}	
    	public abstract void setAge(String age);
    	public abstract void setHigh(String high);
    	
    }
    People1:

    package config;
    
    public class People1 extends People {
    	private String age ;
    
    	public People1() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    
    	public People1(String sname, String sex,String age) {
    		super(sname, sex);
    		this.age = age;
    		// TODO Auto-generated constructor stub
    	}
    	//getset方法
    	@Override
    	public String toString() {
    		return "People1 [name=" + super.getSname()+ ",sex="+super.getSex()+",age=" + age + "]";
    	}
    }
    People2:

    package config;
    
    public class People2 extends People {
    	private String high ;
    	public People2() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    	public People2(String sname, String sex,String high) {
    		super(sname, sex);
    		this.high = high;
    		// TODO Auto-generated constructor stub
    	}
    	@Override
    	public String toString() {
    		return "People2 [name=" + super.getSname()+ ",sex="+super.getSex()+",high=" + high + "]";
    	}
    	@Override
    	public void setAge(String age) {
    		// TODO Auto-generated method stub		
    	}
    	@Override
    	public void setHigh(String high) {
    		// TODO Auto-generated method stub
    		this.high=high;
    	}
    }
    
    6.在RunMain中创建一个名称为textAll的方法:

    public static void textAll(){
    		Properties prop=new Properties();
    		People p = null;
    		try {
    			prop.load(RunMain.class.getResourceAsStream("/config/demo.properties"));
    			
    			Class people = Class.forName("config."+prop.getProperty("People"));
    			p = (People)people.newInstance();
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (InstantiationException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IllegalAccessException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}		
    		p.setSex("nv");
    		p.setSname("xww");
    		if(p instanceof People1){
    			p.setAge("20");
    			
    		}else if(p instanceof People2){
    			p.setHigh("180");
    		}
    		System.out.println(p);
    	}

    7.修改demo.properties的值,添加上我们要创建的类


    People=People2

    8.在主方法中运行一下textAll()这个方法,再改成People1再运行一下,两者分别输出各自类的信息

    9.至此我们就实现了在文件中读取一个字符串并创建以这个字符为名字的类的对象



    展开全文
  • 如果要存储为字符串数组,那就需要定义数组的大小,故得先获得文件的总行数;而使用ArrayList来存储数据,就省去了这一步骤,使用比较灵活方便。 一、字符串数组(String[]) String file = "1.txt"; int ...

    java读取文件,网上的方法已经讲解得很全面了,这里就不再进行介绍。
    本文主要是介绍如何将文件内的数据存储成自己想要的数据类型。如果要存储为字符串数组,那就需要定义数组的大小,故得先获得文件的总行数;而使用泛型类来存储数据,就省去了这一步骤,使用比较灵活方便。

    一、字符串数组(String[])

    		String file = "1.txt";		
    		int fileLength = 0;		
    		try {
    			// 获取要读取文件的总行数
    			fileLength = (int) Files.lines(Paths.get(file)).count();	
    			System.out.println(fileLength);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}		
    		
    		// 获取文件内容,字符串数组定义必须定义数组大小,所以需要先计算出fileLength的值
    		String[]data = new String[fileLength];
    		String temp = "";
    		int i=0;
    		try {
    			FileInputStream fileInputStream = new FileInputStream(file);
    			BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream));
    			while((temp = reader.readLine())!=null) {
    				data[i++] = temp;	// 使用数组存储				
    			}
    		}catch(Exception e) { 
    			e.printStackTrace();
    		}
    		
    		// 输出
    		for(int j=0;j<data.length;j++) {
    			System.out.println(data[j]);
    		}
    

    二、泛型类(ArrayList<String>)

    		String file = "1.txt";
    		// 这里的arrayList存储的数据类型是String,不需要定义arrayList的大小,使用比较灵活
    		ArrayList<String>arrayList = new ArrayList<>();
            String temp = "";
            try {
                FileInputStream fis = new FileInputStream(file);
                BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
                while((temp = reader.readLine())!=null) {
                    arrayList.add(temp);	// 使用泛型类存储
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            // ArrayList-->String[](我们需要的结果类型是字符串数组,所以这里进行转换)
            String[]data = arrayList.toArray(new String[arrayList.size()]);
            
            // 输出
            for(int j=0;j<data.length;j++) {
    			System.out.println(data[j]);
    		}
    

    有时,我们可以在读取一行数据的同时就进行处理,那么使用数组或泛型都可以达到目的,不必再将泛型转换成数组。

    展开全文
  • java.lang.ArrayIndexOutOfBoundsException: 1split()分割字符串,出现数据越界异常,报错1 split()分割字符串,出现数据越界异常,报错1 今天学习redis数据库过程中,在实现读取txt文件,分割每一行数据,存储...

    java.lang.ArrayIndexOutOfBoundsException: 1

    split()分割字符串,出现数据越界异常,报错为1

    今天学习redis数据库过程中,在实现读取txt文件,分割每一行数据,存储到hashmap集合中,再写入到redis数据库,但是就是报数组越界,我确定数据没有越界。
    代码如下:

    FileReader file = new FileReader("data\\student.txt");
            BufferedReader br = new BufferedReader(file);
            String line;
            while ((line=br.readLine())!=null){
                String id ="student:"+ line.split(",")[0];
    
                String[] split = line.split(",");
    
                System.out.println(split.length);
    
                String name = split[1];
                String age = split[2];
                String sex = split[3];
                String clazz = split[4];
    
    //            System.out.println(name);
    //            System.out.println(age);
    //            System.out.println(sex);
    //            System.out.println(clazz);
    
                HashMap<String,String> map = new HashMap<String,String>();
    
                map.put("name",name);
                map.put("age",age);
                map.put("sex",sex);
                map.put("clazz",clazz);
    
    //            System.out.println(map);
    
                jedis.hmset(id,map);
            }
    

    反复检查,代码也没有问题
    报错如下:
    在这里插入图片描述
    显示数组越界,跟了一个1,百度了每找到类似问题和解决方案,只能自己慢慢想了。
    然后输出分割的字符和字符长度,发现问题,最后一行长度一直为1.
    在这里插入图片描述
    我感觉应该是txt文件内容的问题
    在这里插入图片描述
    又仔细看了看发现问题,最后两行多敲了回车,将回车删除问题就解决啦
    希望有相似问题的小伙伴能看到吧。

    展开全文
  • IO的主要内容包括输入、输出两种IO流,这两种流中又分为字节流和字符流,字节流是以字节单位来处理输入、输出流,而字符流是以字符为单位来处理输入、输出流。回到顶部二、FileFile 类是用来操作文件和目录的,...
  • 我解释理论上的答案,但我们走了….我对你的问题做了一个假设,因为它不完全清楚.>...每次读取文件两次存储〜40MB不同的单词就足够了.// Loop over the file and for each word://// Compute a hash of...
  • varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度38位的浮点数...
  • * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行 * @param file 读取数据的源Excel * @param ignoreRows 读取数据忽略的行数,比喻行头不需要读入 忽略的行数1 * @return ...
  • * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行 * * @param file * 读取数据的源Excel * @param ignoreRows * 读取数据忽略的行数,比喻行头不需要读入 忽略的行数1 * @return ...
  • //作者分列,存储字符串数组中。 int m=s.length; System.out.println(m); if(m==1){ Label label = new Label(0,q++,s[0]); System.out.println(s[0]); new_sheet.addCell(label); ...
  • Java_log2000_IO2

    2017-06-09 13:59:58
    文件操作File类例 打开文件程序说明本例每次从源程序文件OpenFile.java读取512B,存储在缓冲区buffer中,再根据buffer中实际读到的字节数量将它们构造成字符串显示在屏幕上。import java.io.*; public class ...
  • java面试题

    2018-04-27 19:55:38
    答:String是不可变的对象,每次对String类型进行改变都相当于产生了一个新的对象,StringBuffer是可变的字符序列,所以如果要经常改变某个字符串的话建议使用StringBuffer。 list、set、map问题? 答:set 不允许...
  • JavaScript中如何判断一个字符串是否合法日期 JavaServer Page(JSP)简介1 JavaServer Pages (JSP) 1.0简单介绍 ---III JavaServer PagesTM 白皮书 Java布局管理器深入讨论 Java代码编写的一般性指导 JAVA的...
  • java 面试题 总结

    2009-09-16 08:45:34
    JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变...
  • int bytesLen(String s) 返回字符串转化字节数组后,字节数组的长度 这样,从一个字节数组中,根据标记提取出另一个字节数组可以表示如下: 假设我们已经将数据存入字节数组 buffer 中,分界符存入 ...
  • * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行 * * @param file * 读取数据的源Excel * @param ignoreRows * 读取数据忽略的行数,比喻行头不需要读入 忽略的行数1 * @return ...
  •  JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要...
  • // 词频统计功能,sText为字符串文本 public String NLPIR_WordFreqStat(String sText); public String NLPIR_GetLastErrorMsg(); public void NLPIR_Exit(); } private static String[] stopWords=new String...
  • IO输入输出体系.rar

    2020-07-26 15:58:10
    File.pathSwparator 与系统有关的路径分隔符,它被表示一个字符串 windows 分号";" File.pathSwparatorChar 与系统有关的路径分割符,它被表示一个字符 File.separator 与系统有关的 默认名称分隔符 ,它被...
  • * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行 * * @param file * 读取数据的源Excel * @param ignoreRows * 读取数据忽略的行数,比喻行头不需要读入 忽略的行数1 * @return ...
  • 文件对象-读操作

    2015-08-17 00:21:17
    1、读取文件,将所有的信息存储在一个大字符串file_object = open("ClassPathXmlApplicationContext.java",'r') #创建一个文件对象,也是一个可迭代对象 try: all_the_text = file_object.read() #结果str类型 ...
  • 判断字符串是否null或长度0 isEmpty 判断字符串是否null或全为空格 isSpace null转为长度0的字符串 null2Length0 返回字符串长度 length 首字母大写 upperFirstLetter 首字母小写 lowerFirstLetter 转化...
  • day019-io笔记和代码.rar

    2020-03-13 21:09:26
    * 根据指定字符集将字节数组中从指定下标开始到指定长度结束的数据转换为字符串 * charsetName:字符集名 例如 : "GBK"、"UTF-8" 、"ISO-8859-1" * * 不常用 * 3.String(byte[] ...
  • toString : 将给定的数组转换成字符串 Assets目录数据库相关 -> AssetDatabaseOpenHelper.java            回到目录 getWriteableDatabase : 创建或打开一个数据库 getReadableDatabase : ...
  • ASP200问.EXE

    2010-05-20 13:25:08
    102.如何验证字符串为空 (示例四) 103.如何验证字符串包含有效字符 106.如何验证整数或长整数 108.如何验证电子邮件地址 第7章 文件处理 113.读取驱动器信息 113.浏览文件夹下所有文件信息 113.文件夹的复制 113...
  • Ant 1.9.2 API (CHM格式)

    热门讨论 2013-08-24 01:44:27
    注: FileSet的setIncludes, 和setExcludes方法输入pattern, pattern是一个使用“,”或空格分隔的匹配字符串,其中, “**”代表所有文件或目录,“*.*”代表说有文件, “*.java”代表所有扩展名为java的文件。...

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
关键字:

java读取file存储为字符串

java 订阅