`
勤业思行
  • 浏览: 83758 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

Java IO操作和将字符串解析为数值数组

    博客分类:
  • j2se
阅读更多

今天对K_means聚类算法用Java进行实现了一下,在这过程中使用了Java的文件操作,好久没用流了,用起来没那么快速了。下面我就Java的文件操作的几个常见问题附上实例进行说明,这几个问题主要是将内容写入文件、将文件读出和将由数字和相应的分隔符组成的文件读出为相应的数值数组。

一、通过流和Buffer的方式将文本内容写入新建的一个文件中:

package K_means;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
class TestWriteD {
	public static void main(String[] args) {
		boolean b = updateFile();
		System.out.println("write D successed!---"+b);
	}
	@SuppressWarnings("finally")
	public static boolean updateFile(){
       boolean blg = false;
       try {
              BufferedWriter bw = new BufferedWriter(new FileWriter("D.txt"));
              StringBuilder sb = new StringBuilder("");
                for(int i=0;i<100;i++){
                sb.append(Math.random());
                sb.append(",");
                sb.append(Math.random());
                sb.append(",");
                sb.append(Math.random());
                sb.append(";");
                }
                
		  String a = sb.toString();
          byte[] b = (a).getBytes();
            // 写入文件,还可以用其他方法如:write(String str)
              bw.write(a, 0, b.length);
                bw.close();
                blg = true;
         } catch (IOException e) {
               e.printStackTrace();
               }
        finally{
        return blg;
        }
   }
}

 

二、文件读出到一个字符串:

public static String readFile(String File) throws IOException{
	  FileInputStream inputstream = new FileInputStream(File); 
	     StringBuffer buffer = new StringBuffer(); 
	     String line;
	     double[] D = new double[100];
	     BufferedReader bufferreader = new BufferedReader(new InputStreamReader(inputstream)); 
	     while(bufferreader.ready()){
	     line = bufferreader.readLine();
	     buffer.append(line);
	     buffer.append(";");
	     }
	     inputstream.close();
	     String Dstr =buffer.toString();
	   
	     return Dstr;
  }

 

三、将由数值和相应的分隔符组成的字符串解析为数值数组。这里由于我使用的是多维数据,所以需解析为二维数组。

 public static double[][] split(String D){
	  double aa[][] =new double[100][3];
	  String[][] ss =new String[100][3];
	  String[] s =new String[100];
	  s = D.split(";");
	  for(int i=0;i<100;i++){
		  ss[i] = s[i].split(",");
	  }
	  int i=0;int j=0;
	  for(String[] a : ss){
		  j=0;
		  for(String b :a){
			  aa[i][j] =Double.parseDouble(b);
			  j++;
		  }
		  i++;
	  }
	  
	  return aa;
  }

 

2
3
分享到:
评论

相关推荐

    Java-数组实验.pdf

    `split()`方法用于根据制表符拆分字符串,将每行数据转换为字符串数组。然后,`Integer.parseInt()`方法将这些字符串转换回整数。最后,这些整数数组被添加到`ArrayList[]&gt;`中,以便于进一步处理。\n\n通过这个实验...

    JAVA常见异常解析,面试用

    - **java.lang.NumberFormatException**:尝试将字符串转换为数字类型,但格式不正确时抛出。 - **java.sql.SQLException**:处理数据库操作时,当发生错误或异常情况时抛出。 - **java.io.IOException**:表示输入/...

    Java小片段

    - `Integer.parseInt(String)`:将字符串解析为整型数值。如,`int i = Integer.parseInt(a);` 这里要注意,如果字符串不能解析为有效的整数,会抛出`NumberFormatException`。 2. **向文件末尾追加内容**: - ...

    JAVA对象以及数据的工具类

    包装类提供了许多便利的方法,例如,将字符串转换为对应的数值类型,或者进行数值比较。 在处理对象时,工具类经常扮演重要角色。例如,Apache Commons Lang库中的StringUtils类,提供了大量处理字符串的方法,如...

    JAVA_对文件MD5加密

    4. **字节数组转十六进制字符串**:`byteToHexString`方法负责将计算得到的字节数组转换为十六进制字符串,便于后续处理和显示。 5. **主函数示例**:`main`方法提供了一个简单的示例,展示了如何调用`getMD5`方法...

    实习生java面试题集及详细答案

    通过以上知识点的深入解析,我们可以看到Java语言的强大和灵活性,不仅在基础数据类型处理上细致周全,在字符串操作、日期时间处理以及文件I/O方面也提供了丰富的API和工具类,为开发者提供了极大的便利。

    java 面试题

    例如,反转字符串可以通过将字符串转换为字符数组,然后使用双指针法进行交换来完成。替换操作则可以通过`String`类的`replace()`或`replaceAll()`方法来实现,这些方法允许基于正则表达式进行精确替换。 #### 3. ...

    java IO习题

    - `list()` 方法返回一个字符串数组,包含了指定目录下所有文件和子目录的名字。如果目录为空,则返回一个空数组;如果指定的 File 对象不是一个目录或者出现其他错误,则返回 null。 **4. FileInputStream 类的...

    常用的工具类文件

    它可能会包含`now()`获取当前日期时间,`formatDate()`将日期对象转换为指定格式的字符串,以及`parseDate()`将字符串解析为日期对象的方法。 3. **CollectionUtil**: 针对Java集合框架的操作,CollectionUtil可能...

    Java常用工具类

    - `java.text.SimpleDateFormat`:处理日期和时间的格式化,例如将日期转换为字符串或将字符串解析为日期。 - `java.util.Formatter`:通用的格式化类,支持数值、日期、时间等的格式化输出。 - `java.lang....

    myeclipse8.0激活码

    根据提供的信息,我们可以了解到这段代码是用来生成MyEclipse 8.0激活码的程序。下面将详细介绍该程序的实现逻辑、...虽然代码本身存在一定的复杂度,但它很好地展示了 Java 语言在字符串处理和算法实现方面的能力。

    Java基础知识面试题目

    - **格式化日期**:使用`java.text.SimpleDateFormat`类可以将日期对象格式化为字符串,也可以将字符串解析为日期对象。 **5. 数组和集合** - **数组**:固定大小的数据结构,用于存储同类型的数据。 - **集合**:...

    java 技巧 与 实例

    - `Integer.parseInt(args[0])`:将字符串`args[0]`解析为整型数值。`args`是命令行参数数组,`parseInt`用于将其中的字符串转换为整数。 4. **日期和时间处理**: - `new Date().toLocaleString()`:虽然已废弃...

    华为与IBM等公司JAVA面试题大全

    2. 数据类型转换:使用Integer.parseInt()或Double.parseDouble()将字符串转换为数值;反之,Integer.toString()和Double.toString()可将数字转换为字符串;使用DecimalFormat类可以取小数点前两位并进行四舍五入。 ...

    太原理工大学编译原理实验参照.pdf

    3. **字符串解析**:代码中包含了解析用户输入的字符串,并从中提取数字、符号和指数部分的逻辑。这涉及到对字符串中各个字符的遍历和条件判断。 4. **算术运算处理**:解析字符串的过程中,代码对加、减、乘、除等...

    java常用扩展工具jar包详解

    `commons-io.jar`是Apache Commons项目下的一个库,旨在为Java的输入/输出(I/O)操作提供额外的功能,可以视为`java.io`包的扩展。该库包含了三大核心领域: 1. **Utility classes**:提供了一系列静态方法,用于...

    tlv基于java编码和解码 0积分下载

    然后,可以提供方法将TLV对象转换为字节数组,以便于在网络中传输或存储。编码过程可能涉及以下几个步骤: - 序列化Tag到字节序列。 - 计算并序列化Length到字节序列。 - 序列化Value到字节序列,并根据Length...

    20个非常有用的Java功能代码

    - `Integer.parseInt(String)`:将字符串解析为整型。 2. **向文件追加文本**: - 使用`BufferedWriter`和`FileWriter`可以安全地向现有文件追加文本。确保使用`try-catch-finally`结构来处理异常并关闭流。 3. ...

    java期末考试a卷答案

    - 填空题涵盖了一些基本语法和概念,如注释的写法、布尔值表示、数组声明、字符串与数值类型的比较、包的导入等。例如第3题关于真/假的表示,第5题涉及数据类型的比较操作符,第7题是导入包的语句。 3. **阅读程序...

Global site tag (gtag.js) - Google Analytics