我就废话不多说了,大家还是直接看代码吧~
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.io.StreamCorruptedException;
import java.io.UnsupportedEncodingException;
import java.util.List;
import android.graphics.Bitmap;
public class FileUtils {
/**
* 字符流写入字符串到txt
*/
@SuppressWarnings("resource")
public static void FileString(String path, String data) {
try {
FileWriter writer = new FileWriter(path);// 字符流
writer.write(data);
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 字节输出到txt
*
* @param path
* @param data
*/
@SuppressWarnings("resource")
public static void FileString2(String path, String data) {
try {
FileOutputStream outputStream = new FileOutputStream(path);// 字节流
outputStream.write(data.getBytes());
outputStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 设置编码格式写出到txt
*
* @param path
* @param data
*/
public static void FileString3(String path, String data) {
try {
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(path), "UTF-8");// 设置编码格式
writer.write(data);
writer.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 追加写入到txt
*
* @param path
* @param data
*/
@SuppressWarnings("resource")
public static void FileString4(String path, String data) {
try {
FileOutputStream outputStream = new FileOutputStream(path, true);// 追加写入
outputStream.write(("\r\n" + data).getBytes());
outputStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 存储list到文件
*
* @param path
* @param list
*/
@SuppressWarnings("resource")
public static <T> void FileWriteList1(String path, List<T> list) {
try {
FileOutputStream outputStream = new FileOutputStream(path);
ObjectOutputStream stream = new ObjectOutputStream(outputStream);
stream.writeObject(list);
stream.close();
outputStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 设置编码格式存储list到txt
*
* @param path
* @param list
*/
@SuppressWarnings("resource")
public static <T> void FileWriteList(String path, List<T> list) {
try {
BufferedWriter bufferedWriter = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(path), "UTF-8"));
for (T s : list) {
bufferedWriter.write(s.toString());
bufferedWriter.newLine();
bufferedWriter.flush();
}
bufferedWriter.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* bitmap 写入到本地
*
* @param path
* @param bitmap
*/
@SuppressWarnings("resource")
public static void FileBitmap(String path, Bitmap bitmap) {
try {
FileOutputStream outputStream = new FileOutputStream(path);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
outputStream.flush();
outputStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 读取本地文件数据设置指定编码
*
* @param path
*/
@SuppressWarnings("resource")
public static String FileInputString(String path) {
StringBuffer buffer = new StringBuffer();
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(path), "UTF-8"));
String data = null;
while ((data = reader.readLine()) != null) {
buffer.append(data + "\r\n");
}
reader.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return buffer.toString();
}
/**
* 根据字节读取文件
*
* @param path
* @return
*/
@SuppressWarnings("resource")
public static String FileInputString2(String path) {
StringBuffer buffer = new StringBuffer();
try {
FileInputStream inputStream = new FileInputStream(path);
byte[] bytes = new byte[1024];
int bytead = 0;
while ((bytead = inputStream.read(bytes)) != -1) {
buffer.append(new String(bytes, 0, bytead));
}
inputStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return buffer.toString();
}
/**
* 获取本地文件中的list
*
* @param path
*/
@SuppressWarnings("resource")
public static <T> void FileInputList(String path) {
try {
FileInputStream inputStream = new FileInputStream(path);
ObjectInputStream stream = new ObjectInputStream(inputStream);
List<T> list = (List<T>) stream.readObject();
inputStream.close();
stream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (StreamCorruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 高效读取指定编码格式的文件
* @param path
* @return
*/
@SuppressWarnings("resource")
public static String FileInput3(String path) {
StringBuffer buffer = new StringBuffer();
try {
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(new FileInputStream(path), "UTF-8"));
String data = null;
while ((data = bufferedReader.readLine()) != null) {
buffer.append(data+"\r\n");
}
bufferedReader.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return buffer.toString();
}
}
补充知识:java读取txt文件为List
文件在桌面放着名字为hello.txt,先看一下要读取的内容
这是为了方便展示demo随便写的,格式是一行一个英文单词,一共五个。
读取代码,这个代码也是网上找的,忘了哪个博客了。
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* @author :
* @date : 2018/8/30
* @description:
*/
public class ReaderFileLine {
/**
* @author:
* @date:2018/8/30
* @description:从txt文件读取List<String>
*/
public static List<String> getFileContent(String path) {
List<String> strList = new ArrayList<String>();
File file = new File(path);
InputStreamReader read = null;
BufferedReader reader = null;
try {
read = new InputStreamReader(new FileInputStream(file),"utf-8");
reader = new BufferedReader(read);
String line;
while ((line = reader.readLine()) != null) {
strList.add(line);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (read != null) {
try {
read.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return strList;
}
public static void main(String[] args) {
List<String> fileContent =
ReaderFileLine.getFileContent("C:\\Users\\Lenovo\\Desktop\\hello.txt");
for (String s : fileContent) {
System.out.println(s);
}
}
}
输出:
first
second
Third
Fourth
Fifth
注意:
1.这里File这个类导入的包是Io的,不是Nio的
2. ReaderFileLine.getFileContent("C:\\Users\\Lenovo\\Desktop\\hello.txt"); 这个路径是绝对路径
3.路径是一个 反斜杠 \ 但是在代码里面反斜杠是转义的意思,所以需要再加一个\,如果你是用的IDEA恭喜你,它会自动给你加上
以上这篇java 将字符串、list 写入到文件,并读取内容的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持亿速云。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。