如何读取文件然后将数据写入java中的.txt文件?以下是我的代码。我正在读一个扩展名为.ivt的文件。 .ivt中有一些表,reset是一个描述所有数据的文本。我必须读取存储在文件中的文本,然后将其写在文本文件中。我能够获取数据并将其写在文本文件中。但是,当我打开文本文件并查看写入的内容时,我会看到许多随机符号和空格行。然后,几行将从英语转换为法语。我正在努力寻找为什么会这样。读取数据时是否会出现此问题?或者代码有问题吗?
package description;
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.PrintWriter;
import java.util.ArrayList;
public class FileDescription
{
public static void main(String[] args)
{
// create variables
ArrayList<String> fileLines = new ArrayList<>();
String currLine;
// create file
File file = new File("E:\\Deep\\Personal Life\\Summer Education\\Grade 12 Physics\\Test\\Products.ivt");
FileInputStream fis = null;
BufferedReader br = null;
try
{
fis = new FileInputStream(file);
// construct buffered reader
br = new BufferedReader(new InputStreamReader(fis));
}
catch (FileNotFoundException e)
{
}
try
{
while((currLine = br.readLine()) != null)
{
// add line to the arrayList
fileLines.add(currLine);
}
}
catch (IOException e)
{
}
finally
{
// close buffered reader
try
{
br.close();
}
catch (IOException e)
{
}
}
// write ArrayList on file
PrintWriter pw = null;
try
{
pw = new PrintWriter("E:\\Deep\\Personal Life\\Summer Education\\Grade 12 Physics\\Test\\ProductsO.txt");
}
catch (IOException e)
{
}
for (int i = 0; i < fileLines.size(); i++)
{
pw.println(fileLines.get(i));
}
}
}
答案 0 :(得分:1)
代码似乎是正确的。只记得关闭输出编写器。没有指定任何其他内容,您正在使用plaftorm编码。我认为这是一个编码问题。您可以尝试以UTF-8编码进行读写。
对于缓冲的阅读器
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream("filename.txt"), StandardCharsets.UTF_8));
对于作家
pstream = new PrintWriter(new OutputStreamWriter(
new FileOutputStream("E:\\Deep\\Personal Life\\Summer Education\\Grade 12 Physics\\Test\\ProductsO.txt"), StandardCharsets.UTF_8), true);
要编辑结果,请使用带有UTF-8的编辑器。