Java读取写入文件,正则,读取路径

Java读取写入文件

import java.io.BufferedReader;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

public class WriteFile {

public static void main(String[] args) {

try {

//写入文件

FileWriter file = new FileWriter("d:/c.txt",true);//true表示追加数据

String content ="hello world \r\nthis is my name";

file.write(content);

file.close();

//java读取文件

File f = new File("d:/c.txt");

FileReader bytes = new FileReader(f);

BufferedReader chars = new BufferedReader(bytes); //字节类型转换成字符形式

String row ="";

while((row=chars.readLine())!=null) {

System.out.println(row);

}

} catch (Exception e) {

// TODO: handle exception

}

}

}

使用FileInputStream更好

InputStreamReader 和FileReader的区别:

InputStreamReader 和 BufferedReader 。其中最重要的类是 InputStreamReader ,它是字节转换为字符的桥梁。 你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编码方式,例如 GBK 等。

FileReader 与 InputStreamReader 涉及编码转换 ( 指定编码方式或者采用 os 默认编码 ) ,可能在不同的平台上出现乱码现象!而 FileInputStream 以二进制方式处理,不会出现乱码现象 .

FileInputStream字节流是 以一个一个字节来读。

FileReader字符流是 以一个一个字符来读取的。

static ArrayList<String> read_list_from_txt(String path) {

ArrayList<String> list= new ArrayList<>();

try {

String project_path =System.getProperty("user.dir");

//File file = new File("D:/Project/Program/workspace/Estatement/src/com/utils/Spec_REF.txt");

//File file = new File(project_path+"/src/com/utils/Spec_FPS_account.txt");

File file = new File(project_path+path);

if (!file.exists()) {

file.createNewFile();

System.out.println("The file is not exist, create the file, but the file is empty");

list.add("NNNNNNNNNNNNNN");

return list;

}

//InputStream得到字节输入流

InputStream instream = new FileInputStream(file);

if(instream.toString().isEmpty()) {

System.out.println("The file is empty");

}

if (instream != null) {

//InputStreamReader 得到字节流

InputStreamReader inputreader = new InputStreamReader(instream);

@SuppressWarnings("resource")

//BufferedReader 是把字节流读取成字符流

BufferedReader buffreader = new BufferedReader(inputreader);

String line="";// 分行读取

while ((line = buffreader.readLine()) != null) {

list.add(line.trim());

}

}

} catch (IOException e) {

e.printStackTrace();

}

return list;

}

Java实现正则

import java.util.regex.Pattern;

public class StudyRe {

public static void main(String[] args){

String content = "I am noob from runoob.com.";

String pattern = "I am noob .*? runoob.com.";

boolean isMatch = Pattern.matches(pattern, content);

System.out.println("字符串中是否包含了 'runoob' 子字符串? " + isMatch);

}

}

Java读取路径

import java.io.File;

import java.nio.file.Files;

import java.nio.file.Paths;

import java.util.ArrayList;

import java.util.List;

public class ReadPath {

public static void main(String[] args) throws Exception {

long start = System.currentTimeMillis();

readFeatureFiles();

System.out.println("coast time: "+( System.currentTimeMillis()-start));

}

public static void readFeatureFiles() throws Exception {

String path="C:\\Users\\jeff.xie\\Desktop\\error2";

List<String> caseNames =new ArrayList<String>();

File f = new File(path);

File[] files = f.listFiles();

for (int i = 0; i < files.length; i++) {

//System.out.println(files[i].getName());

String filename = files[i].getName();

String id = filename.split("_")[0];

System.out.println(id);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值