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.

*/

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/186014.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-26 21:09
下一篇 2024-11-26 21:09

相關推薦

發表回復

登錄後才能評論