今天对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;
}
分享到:
相关推荐
将字符串中的所有非Double类型的字符全部替换成空格 以’#’开头直至行尾的内容被清空 返回一维numpy.array数组 import numpy import scipy def str2num(LineString,comment='#'): from io import StringIO as ...
java IO教程,java IO教程,java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程,java IO教程,java IO教程,java IO...
主要介绍了java的io操作示例,将字符串写入到txt文件中,需要的朋友可以参考下
提高Java IO操作的性能 虽然抱怨Java程序性能不佳的呼声由来已久,但实际上,如果开发者在整个开发周期内都能够关注性能问题,Java程序完全可以和C/C++程序一样快。本文分析了Java IO应用中一些常见的性能问题。
java IO操作详细解释 清华大学java io专用教材
C ++学习之路,io流拆分字符串。多中方法实现字符串的拆分源码
Java iO操作全集 希望对你学习有所帮助。
想了解IO输入输出流的学者可以看看,里面有详细的讲解及源代码。
2、常用21个IO流:FileWriter、FileReader、CharArrayReader、CharArrayWriter、...代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
该文档主要提供,针对于java的io操作的一些具体事项
IO InputStream FileOutputStream
Java教程之javaIO详解Java教程之javaIO详解Java教程之javaIO详解
java提供各种IO操作。深入浅出的讲解IO.适合初学者学习
1、Java IO_NIO 2、Java+IO.pdf
IO流 javaio java 流
jdk是 java 的开发工具,全称为Java Development Kit,包含java... java核心类库是指java提供的一组基础类和接口,用于处理常见的任务和操作,例如字符串的操作,数组的操作,集合的操作,多线程,IO流,网络编程等。
使用数组实现字符串类的各种操作算法,数组容量不足时扩充容量的方法。 二、实验题目 ①比较this与obj引用的串是否相等 ②返回将this中所有小写字母转换成大写的串 三、实验方法与步骤(需求分析、算法设计思路、...
java.io.Reader 和 java.io.InputStream 的区别
学习Java IO,不得不提到的就是JavaIO流。 流是一组有顺序的,有起点和终点的字节集合,是对数据...即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。