您的位置:

java文件输出,java文件输出乱码

本文目录一览:

java输入文件名,输出该文件的内容

java读取文件的内容,使用BufferedReader来读取,通过Scanner对象获取输入的文件名,来读取这个文件的内容并输出,具体示例代码如下:

public class txttest {

    /**

     * 读取txt文件的内容

     * @param file 想要读取的文件对象

     * @return 返回文件内容

     */

    public static String txt2String(File file){

        String result = "";

        try{

            BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件

            String s = null;

            while((s = br.readLine())!=null){//使用readLine方法,一次读一行

                result = result + "\n" +s;

            }

            br.close();    

        }catch(Exception e){

            e.printStackTrace();

        }

        return result;

    }

    

    public static void main(String[] args){

        Scanner scan = new Scanner(System.in);

        System.out.println("请输入文件名:");

        String str = scan.next();

        String mulu = "C:\\Users\\hp\\Desktop\\" + str + ".txt";//文件具体目录

        File file = new File(mulu);

        System.out.println(txt2String(file));

    }

}

Java中如何实现文件的输入和输出?

程序如下:\x0d\x0a \x0d\x0a\x0d\x0aFile file1 = new File("/home/a123/a"); \x0d\x0a\x0d\x0a if (file1.exists()) { \x0d\x0a System.out.println("存在文件夹a"); \x0d\x0a } else { \x0d\x0a file1.mkdir(); // 文件夹的创建 创建文件夹/home/a123/a \x0d\x0a } \x0d\x0a File file2 = new File("/home/a123/a/test"); \x0d\x0a if (file2.exists()) { \x0d\x0a System.out.println("存在文件夹或者文件test"); \x0d\x0a } else { \x0d\x0a try { \x0d\x0a file2.createNewFile(); // 文件的创建,注意与文件夹创建的区别 \x0d\x0a } catch (IOException e) { \x0d\x0a // TODO Auto-generated catch block \x0d\x0a e.printStackTrace(); \x0d\x0a } \x0d\x0a } \x0d\x0a \x0d\x0a /** \x0d\x0a * 最简单的文件读写方法是使用类FileWriter \x0d\x0a * (它的父类依次是java.io.OutputStreamWriter——java.io.Writer——java.lang.Object ); \x0d\x0a */ \x0d\x0a \x0d\x0a // 下面是向文件file2里面写数据 \x0d\x0a try { \x0d\x0a FileWriter fileWriter = new FileWriter(file2); \x0d\x0a String s = new String("This is a test! \n" + "aaaa"); \x0d\x0a fileWriter.write(s); \x0d\x0a fileWriter.close(); // 关闭数据流 \x0d\x0a\x0d\x0a} catch (IOException e) { \x0d\x0a // TODO Auto-generated catch block \x0d\x0a e.printStackTrace(); \x0d\x0a } \x0d\x0a \x0d\x0a /* \x0d\x0a * 这样写数据的话,是完全更新文件test里面的内容,即把以前的东西全部删除,重新输入。 \x0d\x0a * 如果不想删除以前的数据,而是把新增加的内容增添在文件末尾处。只需要在创建FileWriter对象时候,使用另外一个构造函数即可: \x0d\x0a * FileWriter fileWriter=new FileWriter(file2,true); \x0d\x0a */ \x0d\x0a \x0d\x0a // 下面是从文件file2读东西 \x0d\x0a try { \x0d\x0a FileReader fileReader = new FileReader(file2); \x0d\x0a String s = null; \x0d\x0a char ch; \x0d\x0a try { \x0d\x0a char[] c = new char[100]; \x0d\x0a fileReader.read(c,0,2); // 具体想得到文件里面的什么值(单个char?int?还是String?), \x0d\x0a System.out.println(c); \x0d\x0a fileReader.close(); \x0d\x0a \x0d\x0a } catch (IOException e) { \x0d\x0a // TODO Auto-generated catch block \x0d\x0a e.printStackTrace(); \x0d\x0a } \x0d\x0a \x0d\x0a } catch (FileNotFoundException e) { \x0d\x0a // TODO Auto-generated catch block \x0d\x0a e.printStackTrace(); \x0d\x0a } \x0d\x0a /** \x0d\x0a * 具体想得到文件里面的什么值(单个char?int?还是String?),需要知道不通read的不同用法: \x0d\x0a * 1. int read() 读取单个字符。 \x0d\x0a * 2. int read(char[] cbuf) 将字符读入数组。 可以再将字符型数组转化位字符串 \x0d\x0a * 3. int read(char[] cbuf,int off,int len) 将字符读入数组的某一部分。 \x0d\x0a * 这三个方法都返回一个int值,作用是:读取的字符数,如果已到达流的末尾,则返回 -1. \x0d\x0a */ \x0d\x0a \x0d\x0a }

java怎么读入文件,并逐行输出

java读入文件,并逐行输出,先在D://home建立个文件夹,然后创建一个a.txt文件,然后编辑文件,文本编辑的编码是utf-8,然后用流逐行读取输出,如下:

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

public class TestC {

public static void main(String[] args){

//获取要读取的文件

 File readFile=new File("D://home/a.txt");

 //输入IO流声明

        InputStream in=null;

        InputStreamReader ir=null;

        BufferedReader br=null;

        

        try {

         //用流读取文件

in=new BufferedInputStream(new FileInputStream(readFile));

//如果你文件已utf-8编码的就按这个编码来读取,不然又中文会读取到乱码

ir=new InputStreamReader(in,"utf-8");

//字符输入流中读取文本,这样可以一行一行读取

br= new BufferedReader(ir);

String line="";

//一行一行读取

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

System.out.println(line);

}

        } catch (Exception e) {

e.printStackTrace();

}finally{

//一定要关闭流,倒序关闭

try {

if(br!=null){

br.close();

}

if(ir!=null){

ir.close();

}

if(in!=null){

in.close();

}

} catch (Exception e2) {

}

}

    

}

}

结果:

helloworld

您好

123456

java输出文件文件名为什么不能用时间

因为格式错误。根据查询java输出文件文件名相关资料得知,java输出文件文件名不能用时间是因为输入时间格式错误。JAVA源文件名必须符合以下规则:

1、必须以.java结尾。这样才能被编辑器javac.exe所编辑。

2、源文件中如果只有一个类,文件名必须与该类名相同。

3、如果有多个类,且没有public类,文件名可与任一类名相同。

4、有多个类,且有public类,文件名必须与该类名相同。

Java中如何实现文件的输入输出?

程序如下:

span style="color:#990000;"

/spanFile file1 = new File("/home/a123/a");

if (file1.exists()) {

System.out.println("存在文件夹a");

} else {

file1.mkdir(); // 文件夹的创建 创建文件夹/home/a123/a

}

File file2 = new File("/home/a123/a/test");

if (file2.exists()) {

System.out.println("存在文件夹或者文件test");

} else {

try {

file2.createNewFile(); // 文件的创建,注意与文件夹创建的区别

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* 最简单的文件读写方法是使用类FileWriter

* (它的父类依次是java.io.OutputStreamWriter——java.io.Writer——java.lang.Object );

*/

// 下面是向文件file2里面写数据

try {

FileWriter fileWriter = new FileWriter(file2);

String s = new String("This is a test! \n" + "aaaa");

fileWriter.write(s);

fileWriter.close(); // 关闭数据流

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

/*

* 这样写数据的话,是完全更新文件test里面的内容,即把以前的东西全部删除,重新输入。

* 如果不想删除以前的数据,而是把新增加的内容增添在文件末尾处。只需要在创建FileWriter对象时候,使用另外一个构造函数即可:

* FileWriter fileWriter=new FileWriter(file2,true);

*/

// 下面是从文件file2读东西

try {

FileReader fileReader = new FileReader(file2);

String s = null;

char ch;

try {

char[] c = new char[100];

fileReader.read(c,0,2); // 具体想得到文件里面的什么值(单个char?int?还是String?),

System.out.println(c);

fileReader.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

/**

* 具体想得到文件里面的什么值(单个char?int?还是String?),需要知道不通read的不同用法:

* 1. int read() 读取单个字符。

* 2. int read(char[] cbuf) 将字符读入数组。 可以再将字符型数组转化位字符串

* 3. int read(char[] cbuf,int off,int len) 将字符读入数组的某一部分。

* 这三个方法都返回一个int值,作用是:读取的字符数,如果已到达流的末尾,则返回 -1.

*/

}