0

我是android开发的新手。今天我试图在我的应用程序中显示我所有练习过的 java 程序。我希望应用程序读取写入 .txt 文件的数据。

  1. 我应该将所有程序存储在哪个文件夹中?他们超过100人。
  2. 当我单击列表视图或任何其他上的 2 时,我想显示程序 2 的内容
  3. 我们可以将文本文件存储在数据库中吗?如果是这样,我该如何访问它们?我怎样才能阅读它们?
  4. 任何基本想法我该如何解决这个问题?
4

3 回答 3

2

您可以将文本文件保存在 raw / assets 文件夹中。要阅读它们,只需使用此代码。从资产:

BufferedReader reader = new BufferedReader(
                 new InputStreamReader(getAssets().open("YourTextFile.txt")));

从原始:

InputStream inputStream =  context.getResources().openRawResource(R.id.yourresoureid);

             InputStreamReader inputreader = new InputStreamReader(inputStream)

由于您是 Java 程序员,因此无需告诉如何从 InputStream 读取数据,如果您真的想要,请告诉我,我将发布其余代码。

在数据库中保存大量数据并不是一个好主意。

从 InputStream 读取数据的示例

 BufferedInputStream bis=new BufferedInputStream(inputstream);
            ByteArrayBuffer baf=new ByteArrayBuffer(1000);
            while((k=bis.read())!=-1)
            {
            baf.append((byte)k);

            }
            String results=new String(baf.toByteArray());
于 2013-01-09T17:50:52.240 回答
1
  1. 从简单的事情开始,然后处理数据库选项。
  2. 是的,答案会很长,我认为关于 SQLite 的教程将是一个开始的地方。2,1。尝试将您的文本文件放在资产文件夹中并像这样阅读它们。此代码读取一个文件,并将其逐行转储到日志中。

    @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_read);

    AssetManager assetManager = getAssets();
    
    try {
        BufferedReader br = new BufferedReader(new InputStreamReader( 
                assetManager.open("hi.txt")));
        // InputStream inputStream = assetManager.open("hi.txt");
        // BufferedReader br = new BufferedReader(
        // new InputStreamReader(inputStream));
    
        String lineIn;
        while ((lineIn = br.readLine()) != null) {
            Log.d("ReadTheDamnFile", lineIn);
        }
        assetManager.close();
    } catch (IOException e) {
    
    }
    

    }

于 2013-01-09T17:52:52.870 回答
0

试试这个它的工作正常:)

try 
   {
           if(poslist==0)
           {
               in = this.getAssets().open("file1.txt");
               iv.setBackgroundResource(R.drawable.fileimage1);

           }
 }
  catch (IOException e) 
  {
      e.printStackTrace();
  }
      try {
        reader = new BufferedReader(new InputStreamReader(in,"UTF-8"));
    } catch (UnsupportedEncodingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
      String line="";
      String s ="";
   try 
   {
       line = reader.readLine();
   } 
   catch (IOException e) 
   {
       e.printStackTrace();
   }
      while (line != null) 
      {
       s = s + line;
       s =s+"\n";
       try 
       {
           line = reader.readLine();
       } 
       catch (IOException e) 
       {
           e.printStackTrace();
       }
    }
    tv.setText(""+s);
  }

  public void onClick(View v){
      try {
    line = reader.readLine();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
      if (line != null){
          tv.setText(line);
      } else {
          //you may want to close the file now since there's nothing more to be done here.
      }
于 2014-02-27T07:53:39.843 回答