栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

哈工大软件构造LAB1记录

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

哈工大软件构造LAB1记录

在做Lab1时遇到了一些问题,记录下解决方法。

1.文件读取

文件读取大体上分为两种方式,一种是按照字节读取文件,一种是按照字符读取文件。按照字节读取的文件,除非内容是单字节的,否则读取出来的内容不是直观的,这中读取方式适合读取图像文件,视频文件等。按照字符读取文件要求读取出来的内容是直观的,这种读取方式适合读取文本文件等。

1.1使用缓冲流+字符流+文件字节流读取(读字符)

	FileInputStream按照字节读取文件

	InputStreamReader将字节内容转换成字符

	BufferedReader提高了读取的效率

这种方式适合读取文本文件等内容直观的文件

 public void read(String filename) throws IOException {
	BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
     String  line = null;
     while((line=in.readLine())!=null)
    	{
    		System.out.println(line);
    	}
    	in.close();
}

1.2使用缓冲流+文件字符流读取(读字符)
  FileReader是文件字符流,按照字符读取文件;

 BufferedReader提高了文件读取的效率,这种方式适合读取文本文件等内容直观的文件

public void read(String filename) throws IOException {
     BufferedReader in = new BufferedReader(new FileReader(filename));
     String  line = null;
     while((line=in.readLine())!=null)
    	{
    		System.out.println(line);
    	}
    	in.close();
}

1.3使用缓冲流+文件字节流读取文件(读字节)
  FileInputStream按照字节读取文件
  BufferedInputStream带缓冲的输入流,提高读取效率

public void read(String filename) throws IOException {
		BufferedInputStream in = new BufferedInputStream(new FileInputStream(filename));
		int i;
 
		while ((i = in.read()) != -1) {
			System.out.print(i);
		}
		in.close();
	}

1.4直接使用文件字节流读取文件(读字节)

 public static void read(String filename) throws IOException {
	        File file = new File(filename);
	        InputStream in = null;
	            in = new FileInputStream(file);
	            int tempbyte;
	            while ((tempbyte = in.read()) != -1) {
	                System.out.write(tempbyte);
	            }
	            in.close();
	}

2.git的使用
  实验中需要在github上获取和上传文件,由于是第一次接触git,所以很生疏,在翻阅并学习git的中文教程后(https://git-scm.com/book/zh/v2),开始上手git。在之前的一个博客里记录了git的一些基本命令的用法。
3.正则表达式
   在实验中遇到了怎样判别txt文件中的数字不是通过制表符‘t’分隔开的。数字不是制表符分隔开,则其分隔符类型不知道,直接查找文本中的内容,寻找制表符之外的分隔符显然很难实现。所以想到了Java语言的正则表达式,对字符串的内容进行模式匹配,来判断文本中是否有除了制表符之外的其他分隔符。正则表达式参考网址

String rxp = "[^0123456789.-]";
			Pattern r = Pattern.compile(rxp);
    ...
    Matcher m = r.matcher(nums[i]);
				if (m.find() == true) {
					System.out.println("矩阵元素不是用制表符分隔开!");
					return false;
				}
   这里使用了正则表达式[^0123456789.-],这是表示匹配0-9.-之外的符号,如果匹配到其他符号,则说明分隔符不仅仅是制表符,还有其他的符号。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/966734.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号