文件读取-python与java对比

最近开始接触python,发现python的语法真的是简单,下面是读取文件的实例对比:

Java

package com.ztesoft.oss.iominterface.httpServlet.toIOM;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class test {
	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		//C:\Users\Adminitrator\Desktop\1\a.txt
		String encoding = "GBK";
		File file = new File("C:/Users/Adminitrator/Desktop/1/a.txt");
		if(file.isFile() && file.exists()){
					try {
						try {
							InputStreamReader in = new InputStreamReader(new FileInputStream(file),encoding);
							BufferedReader br = new BufferedReader(in);
							String lines = null;
							while( (lines = br.readLine()) != null ){
								System.out.println(lines);
							}
							br.close();
							in.close();
						} catch (FileNotFoundException e) {
							e.printStackTrace();
						}
					} catch (UnsupportedEncodingException e) {
						e.printStackTrace();
					}
		}
	
	}

}

 

Python

f = open('C:/Users/Adminitrator/Desktop/1/a.txt','r',encoding='UTF-8')
print(f.read())
f.close()

 

通过以上对比,Java需要40行的代码Python只要4行就可实现,而且现在火热的大数据算法Python是首选,所以有机会一定要花时间去了解Python,Python是未来。

 

PythonJava 都可以递归地遍历文件夹下的所有文件,并对比它们的内容。 在 Python 中,可以使用 `os` 和 `filecmp` 模块来实现。具体步骤如下: 1. 使用 `os.walk()` 函数遍历文件夹下的所有文件和子文件夹。 2. 对于每个文件,使用 `filecmp.cmp()` 函数比较它们的内容是否相同。 以下是一个 Python 的示例代码: ```python import os import filecmp def compare_files(dir1, dir2): for root, dirs, files in os.walk(dir1): for file in files: path1 = os.path.join(root, file) path2 = os.path.join(dir2, os.path.relpath(path1, dir1)) if not filecmp.cmp(path1, path2): print(f"{path1} and {path2} are different.") compare_files("path/to/dir1", "path/to/dir2") ``` 在 Java 中,可以使用 `java.io.File` 类来实现。具体步骤如下: 1. 使用 `java.io.File` 类的 `listFiles()` 方法遍历文件夹下的所有文件和子文件夹。 2. 对于每个文件,使用 `java.nio.file.Files` 类的 `readAllBytes()` 方法读取它们的内容,并使用 `java.util.Arrays` 类的 `equals()` 方法比较它们的内容是否相同。 以下是一个 Java 的示例代码: ```java import java.io.File; import java.nio.file.Files; import java.util.Arrays; public class FileComparator { public static void compareFiles(String dir1, String dir2) throws Exception { File[] files1 = new File(dir1).listFiles(); for (File file1 : files1) { File file2 = new File(dir2, file1.getName()); if (!Arrays.equals(Files.readAllBytes(file1.toPath()), Files.readAllBytes(file2.toPath()))) { System.out.println(file1 + " and " + file2 + " are different."); } if (file1.isDirectory()) { compareFiles(file1.getPath(), file2.getPath()); } } } public static void main(String[] args) throws Exception { compareFiles("path/to/dir1", "path/to/dir2"); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值