一、前言

学习java没多久,关键是没怎么系统学过。都是看别人的代码来学习的。今天就把一直以来让我头痛的java  IO 的一些基本操作来记录下来,加深记忆。

二、java导入文件到内存中

首先放一个完整的加载函数(这里我的返回值是定义的一个稀疏矩阵类)

</pre><p><pre name="code" class="java">public SMatrix Load(String file, String delimeter){

		Map<ArrayList<Integer>,Integer> triples = new HashMap<ArrayList<Integer>,Integer>();

		try{
File f = new File(file);
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr); String line; while((line = br.readLine()) != null){
String[] str = line.trim().split(delimeter); ArrayList<Integer> s = new ArrayList<Integer>();
for(int i = 0;i < str.length - 1; i++){
s.add(Integer.parseInt(str[i]));
} triples.put(s, Integer.parseInt(str[str.length - 1])); } br.close();
fr.close(); }catch(IOException e){
e.printStackTrace();
}
SMatrix sm = new SMatrix(triples);
return sm;
}

解析:所以基本的步骤是:

try{

			File f = new File(file);//Step1:利用文件的路径file,创建文件类
FileReader fr = new FileReader(f);//Step2:创建文件读入类
BufferedReader br = new BufferedReader(fr);//Step3:创建读入的缓存类 String line; while((line = br.readLine()) != null){//循环读入文件的每一行
String[] str = line.trim().split(delimeter);//将每一行按字符串delimeter分割成一个字符串数组 XXXXXXXXX;//TODO:接下来就将得到的字符串数组按照你构造的对象来赋值等等。这里面要注意字符串到整型或Double的转化等。 } br.close();//关闭缓存读入
fr.close();//关闭文件读入 }catch(IOException e){
e.printStackTrace();
}

三、java将数据从内存输出到硬盘文件中

定义输出文件路径:例如,String of = "D:/data/blablabal.txt";

String outFile = "data/eigenVector.txt";
try{
File f = new File(outFile);//构造输出文件类
FileOutputStream fout = new FileOutputStream(f);//构造一个输出文件流
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="white-space:pre">						</span>fout.write("@RELATION\teigenVector\n".getBytes());//主要函数就是  write(args),里面的参数要求是byte[]型的。</span>
			for(int i = n-k;i<n;i++){
fout.write(("@ATTRIBUTE\t"+i + "\tREAL\n").getBytes());
}
fout.write("@DATA\n".getBytes());
if(k <= n){
for(int i = 0;i < m;i++){
for(int j = n-k;j<n;j++){
Double temp = new Double(eigVector.getArray()[i][j]);
String tem = temp.toString();
fout.write((tem + "\t").getBytes()); }
fout.write(("\n").getBytes());
}
}
}
catch(IOException e){
e.printStackTrace();
}

比如你想写一段文字:“I am a student,and I come from China”

fout.write(("I am a student,and I come from China").getBytes());

相应的输出一个table键为:

fout.write(("\t").getBytes());

输出换行:

fout.write(("\n").getBytes());
</pre><pre name="code" class="java">等等。

文件的输出与载入之java操作的更多相关文章

  1. Redis基础知识、命令以及java操作Redis

    1 nosql的概念 sql:操作(关系型)数据库的标准查询语言 关系型数据库(rdbms):以关系(由行和列组成的二维表)模型为核心数据库,有表的储存系统.(mysql.oracle.sqlserv ...

  2. Java操作属性文件,支持新增或更新多个属性

    Java操作属性文件.支持新增或更新多个属性 一.更新或新增单个属性的方法 /** * 写入properties信息 * @param filePath 绝对路径(包含文件名称和后缀名) * @par ...

  3. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  4. java操作文件常用的 IO流对象

    1.描述:流是字节数据或字符数据序列.Java采用输入流对象和输出流对象来支持程序对数据的输入和输出.输入流对象提供了数据从源点流向程序的管道,程序可以从输入流对象读取数据:输出流对象提供了数据从程序 ...

  5. java操作Excel、PDF文件

    java操作Excel.PDF文件 分享者:Vashon 分享来源:CSDN博客 下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码: jxl是一个*国人写的 ...

  6. Java操作文件那点事

    刚开始学Java时候,一直搞不懂Java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己结合API来整理一下,有错的话请指正,也希 ...

  7. properties文件简介及其常用Java操作

    一.properties文件简介 java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值&q ...

  8. Java操作文件夹的工具类

    Java操作文件夹的工具类 import java.io.File; public class DeleteDirectory { /** * 删除单个文件 * @param fileName 要删除 ...

  9. java实现将指定文件夹里所有文件路径输出到指定文件作为参数化文件给lr脚本使用

    java实现将指定文件夹里所有文件路径输出到指定文件作为参数化文件给lr脚本使用 import java.io.BufferedReader; import java.io.BufferedWrite ...

随机推荐

  1. 响应式布局设置--@media only screen and

    @media only screen and  only(限定某种设备) screen 是媒体类型里的一种 and 被称为关键字,其他关键字还包括 not(排除某种设备) /* 常用类型 */类型 解 ...

  2. IOS开发-UI基础-视图

    //------------------------------UIWindow--------------------------// 1.UIWindow:是 UIView 的子类,用于管理.协调 ...

  3. Python基础教程【读书笔记】 - 2016/7/4

    希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第二波:第7章  更加抽象 [总览] 创建自己的对象,是Python的核心概念!Python被称为面向对象的语言.介绍如 ...

  4. 黄聪:C#超级延时方法,延迟系统时间但系统又能同时能执行其它任务

    private void Delay(int Millisecond) //延迟系统时间,但系统又能同时能执行其它任务: { DateTime current = DateTime.Now; whil ...

  5. 1.html5 学习要求,Html 5发展历程

    以下是我在学习html5,项目中用到的关于html5的总结和心得. 1.学习要求 Html4.01,xhtml Css2 Javascript 耐心,动手,毅力. 2.Html 发展历程 Html1. ...

  6. 使用 Entity Framework

    ORM 和 EF 当我们要开发一个应用程序,就要考虑怎样展示数据,怎样持久化数据.考虑这个问题时我们所要关心的东西,最重要的莫过于程序的性能.开发的简易性和代码的可维护.可扩展性. 持久化(Persi ...

  7. Spring配置xml文件详解

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  8. PLSQL_PLSQL Hint用法总结(概念)

    2014-06-20 Created By BaoXinjian

  9. 张恭庆编《泛函分析讲义》第二章第5节 共轭空间 $\bullet$ 弱收敛 $\bullet$ 自反空间习题解答

    1.$\ell^p\ (1\leq p<\infty)$ 的对偶 求证: $\dps{\sex{\ell^p}^*=\ell^q\quad\sex{1\leq p<\infty,\ \fr ...

  10. iOS 批量打包--Shell脚本

    由于公司有批量打包的需要,只是渠道号不一样,网上搜索一番,大致有两个方式:a) 从源程序一次性打出所有渠道的ipa包,大概的思路就是利用脚本循环执行打包过程,而每次打包前都通过脚本修改项目中存放渠道号 ...