簡體   English   中英

Java程序從文本文件讀取輸入並進行相應的修改

[英]Java Program read input from a text file and modify it accordingly

我正在編寫一個Java程序,該程序輸入一個測試文件,對數據進行一些修改,然后將其寫入新的文件輸出中。

輸入的文本文件如下所示:

url = http://184.154.145.114:8013/wlraac name = wlr samplerate = 44100 channels =2 format = S16le~
url = http://newstalk.fmstreams.com:8080 name = newstalk samplerate = 22050 channels = 1 format = S16le

該程序需要能夠將采樣率更改為44100,將通道更改為1(如果它們尚未具有這些值)。 我還將完全刪除url和名稱塊。 完成這些更改后,需要將新行寫到另一個輸出文本文件中。

到目前為止,我的程序所能做的就是選擇一個文件,並向用戶顯示文件的內容。 有人可以向我指出正確的方向,說明我的程序應如何工作以實現所需的結果。

正如有人問到這里,我到目前為止有什么

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

import javax.swing.JFileChooser;
import javax.swing.JFrame;

public class reader2 {
public reader2() {
}
public static void main(String[] args) {
    reader(args);

}
public static void reader(String[] args) {

    JFileChooser chooser = new JFileChooser();
    chooser.setCurrentDirectory(new File("."));

    chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
        public boolean accept(File f) {
            return f.getName().toLowerCase().endsWith(".txt")
            || f.isDirectory();
        }

        public String getDescription() {
            return "Text Documents (.txt)";
        }
    });

    int r = chooser.showOpenDialog(new JFrame());
    if (r == JFileChooser.APPROVE_OPTION) {
        String name = chooser.getSelectedFile().getName();
        String pathToFIle = chooser.getSelectedFile().getPath();
        System.out.println(name);
        try{
            BufferedReader reader = new BufferedReader( new FileReader( pathToFIle ) ); //Setup the reader

            while (reader.ready()) { //While there are content left to read
                String line = reader.readLine(); //Read the next line from the file
                String[] tokens = line.split( "url = " ); //Split the string at every @ character. Place the results in an array.

                for (String token : tokens){ //Iterate through all of the found results

                        //System.out.println(token);
                        System.out.println(token);
                    }

            }

            reader.close(); //Stop using the resource
        }catch (Exception e){//Catch exception if any
            System.err.println("Error: " + e.getMessage());
        }
    }
}

}

您將需要執行以下操作...

  1. 讀取文件內容,一次一行
  2. 將行拆分為各個組件,例如在“空格”字符上拆分
  3. 根據您的問題更改采樣率和通道值
  4. 將行寫到文件中,然后從步驟1重新開始。

如果嘗試一下,請將任何有問題的代碼發布到StackExchange上,我們將盡力提供幫助。

你能試一下嗎

        File file = new File( fileName );
        File tempFile = File.createTempFile("buffer", ".tmp");
        FileWriter fw = new FileWriter(tempFile);

        Reader fr = new FileReader(file);
        BufferedReader br = new BufferedReader(fr);

        while(br.ready()) {
            String line = br.readLine();
            String newLine = line.replaceAll( "samplerate =\\s*\\d+", "samplerate = 44100");
            newLine = newLine.replaceAll( "channels =\\s*\\d+", "channels = 1");

            fw.write(newLine + "\n");
        }

        fw.close();
        br.close();
        fr.close();

        // Finally replace the original file.
        tempFile.renameTo(file);

參考: 文件Java替換字符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM